我在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进行代码版本化,则如果以后要搜索它们,则应转义所有变量。
关于php - PHP htmlentities或htmlspecialchars =合并错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29561690/