2013-03-11 167 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"]; 
相關問題