1

在 PHP 5.3 中,可以启用“magic_quotes_gpc”吗?

我知道它在 PHP 5.3 中已被弃用,但我正在安装的 PHP 脚本需要这个,否则它将无法工作。

4

4 回答 4

3

然后不要使用该脚本启用魔术引号非常糟糕。

自 PHP 5.3.0 起,此功能已被弃用。强烈建议不要依赖此功能。

文档

为什么-不在 DOC 中

于 2011-08-09T17:11:46.587 回答
3

它必须在 .ini 级别完成。它不能在使用 ini_set() 的脚本中完成,因为在处理 ini_set() 时,PHP 已经完成启动并且已经设置了各种超全局数组(POST/GET/REQUEST/etc...)并且不会改变。

您可以使用 Apache<Files>指令启用每个脚本的设置,因为为所有 PHP 脚本启用魔术引号是一个可怕的想法:

<Files needs_gpc.php>
   php_value magic_quotes_gpc 1
</Files>
于 2011-08-09T17:13:04.130 回答
2

您可以使用以下短脚本模拟 magic_quotes:

$_GET = array_map("addslashes", $_GET);
$_POST = ...

请注意,您实际上需要一个递归变体。当您使用它时,您至少可以使用_real_escape_string而不是addslashes(仅当您的数据库和连接仅使用 ASCII 时才允许这样做)。

要为所有脚本启用该功能,请使用 php.ini 选项:

auto_prepend_file = .../fake_magic_quotes.php

至少在 PHP 5.3 中仍然可以启用这个过时的特性。

于 2011-08-09T17:13:44.440 回答
0

是的,它可以。该功能默认禁用,但尚未删除。只需修改您的 php.ini 文件(或使用 Marc B 的建议仅对特定脚本启用它)

于 2011-08-09T17:13:05.610 回答