我在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注入。 它从post,get,htmlentities中获取价值并在mysql中记录。
我的mysql排序规则:utf8mb4_general_ci
问题是,没有htmlentities,acentuation很好,我可以阅读mysql上的everthing。但是,随着那些具有百分比的词语变得疯狂:
não
é
我做错了什么?
答案 0 :(得分:0)
htmlspecialchars和htmlentities是用他们的代码版本交换特殊字符。 html仍会显示符号,因为它会自动翻译代码。但是你自己删除符号。 因此,你的结果是你应该得到的。
如果你不想要他的代码版本的symbosl,f.e。如果你想稍后搜索它们,你应该转义所有变量。