我有一个带有cPanel / Whm / CentOS 5.5的vps,问题是发送到我服务器的所有参数都是 addslashed ,我检查了PHP配置,我发现所有魔术引号被关闭,我不知道是什么原因引起的。
我的代码很干净,我知道它的每一点,我没有任何addslashes()
或某些这些功能。我只想按原样接收参数。
URL: test.php?text=blah" ' " 'blah
<?php
echo $_GET["text"]; // Output blah\" \' \" \'blah
?>
如何关掉这件事?
由于
答案 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”的(已弃用)安全功能,可以将其关闭。