當我使用下面的變量添加註釋時,撇號在它們前面用反斜槓打印。我怎樣才能擺脫反斜槓?從撇號中刪除前面的反斜槓
由於提前,
約翰
打印結果的例子:
我的室友\的弟弟\的前女友\'姑姑開豐田車。
$comment = mysql_real_escape_string($_POST['comment']);
當我使用下面的變量添加註釋時,撇號在它們前面用反斜槓打印。我怎樣才能擺脫反斜槓?從撇號中刪除前面的反斜槓
由於提前,
約翰
打印結果的例子:
我的室友\的弟弟\的前女友\'姑姑開豐田車。
$comment = mysql_real_escape_string($_POST['comment']);
從http://php.net/manual/en/function.mysql-real-escape-string.php
Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
mysql_real_escape_string()
被添加反斜槓,這樣你就可以安全地注入你的字符串轉換成SQL查詢- 這是作爲對SQL Injections保護。
但是這個函數應該只在你想建立一個SQL查詢時使用 - 不是當你想輸出一些東西時。
如果要將字符串輸出到HTML頁面,通常會使用htmlspecialchars
或htmlentities
,以防止XSS。
如果你已經有一些反斜槓調用mysql_real_escape_string()
之前,這可能是因爲Magic Quotes - 如果是這樣,你可能想在你從用戶獲取輸入第一個電話stripslashes()
,不重複的反斜槓。
這不正是mysql_real_escape_string
應該怎麼做?如果在將數據插入數據庫並取回數據庫後仍然看到斜線,請確保magic_quotes_gpc
服務器選項已關閉。
感謝。我怎麼能用htmlspecialchars()去除輸出的反斜槓? – John 2010-04-12 19:39:45
htmlspecialchars不會擺脫斜線,它將簡單編碼<如<和類似的東西。斜槓通過使用stripslashes :)刪除 – oedo 2010-04-12 21:04:32