簡體   English   中英

PHP htmlentities或htmlspecialchars =合並錯誤

[英]PHP htmlentities or htmlspecialchars = acentuation error

我在CONFIG.PHP上具有以下功能:

foreach($_POST as $key => $value){ 
  if (!is_array($value)){
  $_POST[$key] = htmlspecialchars($value);
  }
}

foreach($_GET as $key => $value){ 
  if (!is_array($value)){
  $_GET[$key] = htmlentities($value);
  }
}

防止在所有POST和GET中注入html。 它從發布,獲取,htmlentities獲取價值,並記錄在mysql中。

我的MySQL整理:utf8mb4_general_ci

問題是,沒有htmlentities,acentuation很好,我可以在mysql上閱讀所有內容。 但是隨着htmlentities,帶有沉迷感的單詞變得像這樣瘋狂:

não

é

我做錯了什么?

htmlspecialchars和htmlentities可以與其代碼版本交換特殊字符。 html仍會在自動翻譯代碼時顯示該符號。 但是您可以刪除符號本身。 因此,您的結果就是您應該得到的。

如果您不想使用symbosl的代碼版本,例如,如果以后要搜索它們,則應轉義所有變量。

暫無
暫無

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

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