0

我有一个带有 cPanel/ Whm /CentOS 5.5 的 vps,问题是发送到我的服务器的所有参数都被添加了,我检查了 PHP 配置,我发现所有的魔术引号都被关闭了,我没有不知道是什么原因造成的。

我的代码非常干净,我知道它的每一点,我没有任何addslashes()或某种这些功能。我只想按原样接收参数。

URL: test.php?text=blah" ' " 'blah

<?php
echo $_GET["text"]; // Output blah\" \' \" \'blah
?>

怎么关掉这个东西?

谢谢

4

3 回答 3

3

它是 php.ini 中的magic_quotes_gpc变量(这是第一个关闭它的地方)。你真的应该检查你正在查看正确的文件。

您也可以在 .htaccess 或运行时将其关闭,我相信。但是如果你的主机不允许你做这些事情,你可以使用下面的函数,不管当前的设置如何。

if(get_magic_quotes_gpc()) {

    $_POST      = array_map('stripslashes_deep', $_POST);
    $_GET       = array_map('stripslashes_deep', $_GET);
    $_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
    $_REQUEST   = array_map('stripslashes_deep', $_REQUEST);
}

function stripslashes_deep($value) {

    return (is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value));
}
于 2010-12-05T16:41:41.193 回答
2

您必须禁用 magic_quotes_gpc

于 2010-12-05T16:40:33.040 回答
1

这是一个(已弃用)安全功能,称为“魔术引号”,可以将其关闭。

于 2010-12-05T16:40:16.123 回答