为什么反斜杠会自动添加到所有$ _GET,$ _POST?

时间:2010-12-05 16:38:02

标签: php quotes cpanel

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

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

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

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

如何关掉这件事?

由于

3 个答案:

答案 0 :(得分: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));
}

答案 1 :(得分:2)

答案 2 :(得分:1)

这是一个名为“magic quotes”的(已弃用)安全功能,可以将其关闭。