在 PHP 5.3 中,可以启用“magic_quotes_gpc”吗?
我知道它在 PHP 5.3 中已被弃用,但我正在安装的 PHP 脚本需要这个,否则它将无法工作。
在 PHP 5.3 中,可以启用“magic_quotes_gpc”吗?
我知道它在 PHP 5.3 中已被弃用,但我正在安装的 PHP 脚本需要这个,否则它将无法工作。
它必须在 .ini 级别完成。它不能在使用 ini_set() 的脚本中完成,因为在处理 ini_set() 时,PHP 已经完成启动并且已经设置了各种超全局数组(POST/GET/REQUEST/etc...)并且不会改变。
您可以使用 Apache<Files>
指令启用每个脚本的设置,因为为所有 PHP 脚本启用魔术引号是一个可怕的想法:
<Files needs_gpc.php>
php_value magic_quotes_gpc 1
</Files>
您可以使用以下短脚本模拟 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 中仍然可以启用这个过时的特性。
是的,它可以。该功能默认禁用,但尚未删除。只需修改您的 php.ini 文件(或使用 Marc B 的建议仅对特定脚本启用它)