2010-04-12 60 views
0

當我使用下面的變量添加註釋時,撇號在它們前面用反斜槓打印。我怎樣才能擺脫反斜槓?從撇號中刪除前面的反斜槓

由於提前,

約翰

打印結果的例子:

我的室友\的弟弟\的前女友\'姑姑開豐田車。

$comment = mysql_real_escape_string($_POST['comment']); 

回答

3

mysql_real_escape_string()被添加反斜槓,這樣你就可以安全地注入你的字符串轉換成SQL查詢- 這是作爲對SQL Injections保護。

但是這個函數應該只在你想建立一個SQL查詢時使用 - 不是當你想輸出一些東西時。

如果要將字符串輸出到HTML頁面,通常會使用htmlspecialcharshtmlentities,以防止XSS


如果你已經有一些反斜槓調用mysql_real_escape_string()之前,這可能是因爲Magic Quotes - 如果是這樣,你可能想在你從用戶獲取輸入第一個電話stripslashes(),不重複的反斜槓。

+0

感謝。我怎麼能用htmlspecialchars()去除輸出的反斜槓? – John 2010-04-12 19:39:45

+0

htmlspecialchars不會擺脫斜線,它將簡單編碼<如<和類似的東西。斜槓通過使用stripslashes :)刪除 – oedo 2010-04-12 21:04:32

0

這不正是mysql_real_escape_string應該怎麼做?如果在將數據插入數據庫並取回數據庫後仍然看到斜線,請確保magic_quotes_gpc服務器選項已關閉。