Php 当我输出转义的htmlspecialchars字符串时,HTML实体是否不显示?
嗨,我目前正在开发一个系统,用户可以提交评论 问题是,当我回显转义字符串时,HTML实体并没有像预期的那样显示,但是出于某种原因,如果我在页脚中包含版权HTML实体,它会显示出来,并且工作正常吗 提交的字符串Php 当我输出转义的htmlspecialchars字符串时,HTML实体是否不显示?,php,utf-8,escaping,htmlspecialchars,Php,Utf 8,Escaping,Htmlspecialchars,嗨,我目前正在开发一个系统,用户可以提交评论 问题是,当我回显转义字符串时,HTML实体并没有像预期的那样显示,但是出于某种原因,如果我在页脚中包含版权HTML实体,它会显示出来,并且工作正常吗 提交的字符串 Why can't i submit this Why can't i submit this 输出的字符串 Why can't i submit this Why can't i submit this 输出将如下所示,这不是我想要的。 用于转义
Why can't i submit this
Why can't i submit this
输出的字符串
Why can't i submit this
Why can't i submit this
输出将如下所示,这不是我想要的。
用于转义字符串的函数
function escape($text) {
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
我用这个来确保我的网站使用UTF-8
元标记
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
连接
define("DB_SERVER", "mysql:host=myhost;dbname=mydb;charset=utf8");
define("DB_USER", "my user");
define("DB_PASS", "my password");
define("DB_NAME", "my database");
function dbCon() {
try {
$dbCon = new PDO(DB_SERVER, DB_USER, DB_PASS);
} catch (Exception $ex) {
// echo $ex->getMessage();
echo "An error has occured";
}
return $dbCon;
}
Ummm
ENT\u引号将转换和“
到它们的HTML实体等价物-它正按照您告诉它的方式执行。。。您想要ENT\u COMPAT
或ENT\u NOQUOTES
实体不显示为实体吗?应该是这样吗?但是如果您在web浏览器中查看HTML实体,它将呈现'代码>作为”
-当您查看源代码时,您看到了哪些?使用查看源代码而不是检查元素-一个显示代码,另一个显示DOM。@iiiml0sto1 1。)是否向DB插入注释?2.)在插入数据库之前是否使用htmlspecialchars?如果是这样,您不应该……。如果您的目标是防止XSS,那么您应该在不转义的情况下存储输入,然后在显示时调用escape()
。这将对