为什么将转义字符添加到URL参数?

时间:2013-03-11 07:52:14

标签: php apache url parameters escaping

我的PHP页面正在接受网址中的参数。此参数分配给变量,如下所示:

$msg = $_REQUEST["msg"];

HTTP请求发送到网站时,参数会以"hello'"的形式发送,但当它到达上面的PHP变量时,它变为"hello\'"。< / p>

为什么要插入反斜杠以及插入什么?它是Web服务器吗?我该如何防止这种情况发生?

2 个答案:

答案 0 :(得分:1)

Magic Quotes正在您的服务器上运行。你应该使用 stripslashes($ text)功能:

if(get_magic_quotes_gpc()) 
        $msg = stripslashes($_REQUEST["msg"]); 
   else $msg = $_REQUEST["msg"];

答案 1 :(得分:-2)

正在附加,因为您的单引号是字符串的一部分。如果它不会被转义 - 这就是反斜杠的含义 - 可能是你的字符串定义太快终止了。