簡體   English   中英

PHP在插入MySQL時會在字符上添加斜杠

[英]PHP is adding slashes to characters when inserting into MySQL

例如,當在文本字段中鍵入'時,PHP會在其前面放置一個\\。

我使用以下內容進行過濾:

$comment_body = $_POST['comment_body'];
$comment_body = nl2br(htmlspecialchars($comment_body));
$comment_body = mysqli_real_escape_string($db_conx,$comment_body); 

如何阻止此斜杠出現?

您應該針對上下文使用清理:

保存到數據庫時,僅使用mysqli_real_escape_string() 將變量輸出到HTML時,只需使用htmlspecialchars()即可

自動添加斜杠可能是由於magic_quotes_gpc的設置,在較新版本的PHP中已將其刪除,但是您可以在phpinfo()中檢查設置

這就是mysqli_real_escape_string的作用。 僅應在將數據放入數據庫中時使用。 如果要輸出$ comment_body,則只需省略代碼段的最后一行即可。 如果發生兩次轉義,這可能是魔術引號配置指令的結果。

可能是因為您在:magic_quotes_gpc上加上了魔術引號,如果是這種情況,則可以使用此命令將其禁用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM