繁体   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