2013-03-11 168 views
0

我的PHP页面正在接受URL中的参数。此参数被分配给一个变量,如下所示:为什么要将转义字符添加到URL参数中?

$msg = $_REQUEST["msg"]; 

HTTP请求被发送到该网站时,参数作为"hello'"发送,但是当它到达PHP可变以上变得"hello\'"

为什么要插入反斜线并插入它?它是网络服务器吗?我怎样才能防止这种情况发生?

+3

[PHP魔术引号(http://en.wikipedia.org/wiki/Magic_quotes)。 – DCoder 2013-03-11 07:53:22

+1

使用字符串stripslashes(字符串$ str) – 2013-03-11 07:53:43

+1

可能的重复[如何关闭PHP配置文件中的魔术引号?我正在使用XAMPP](http://stackoverflow.com/questions/1748001/how-to-turn-off-magic-quotes-in-php-configuration-file-i-am-using-xampp)或[如何可以我在运行时禁用PHP魔术引号?](http://stackoverflow.com/questions/1153741/how-can-i-disable-php-magic-quotes-at-runtime) – hakre 2013-03-11 07:55:27

回答

-2

它被追加,导致您的单引号符号是字符串的一部分。如果它不会被转义 - 这就是反斜杠的含义 - 可能是您的字符串定义过早终止。

+1

没有downvote ..但这不是原因。 – Daedalus 2013-03-11 07:56:55

1

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

if(get_magic_quotes_gpc()) 
     $msg = stripslashes($_REQUEST["msg"]); 
    else $msg = $_REQUEST["msg"]; 
相关问题