我有一个textarea,当用户输入类似的内容时,用户可以发布html代码并使用mysqli_real_escape_string()函数清理帖子..
===假设===
$post="
<html>
<body>
<p> Some Paragraph </p>
</body>
</html>
";
当我清理这个是带有mysqli_real_escape_string()函数的$ post变量
$post=mysqli_real_escape_string($dblink,$post);
在显示该变量时将该变量存储在数据库中
echo"<pre>".$post."</pre>";
这将显示
<html>\r\n\r\n<body>\r\n\r\n <p> Some Paragraph
</p>\r\n\r\n</body>\r\n\r\n</html>
请给我任何解决方案,以便我可以显示我的标记格式
答案 0 :(得分:0)
是一个黑客,但可能是一个快速修复,直到你可以重构。使用$post
函数换行str_replace
,将“\ r \ n”替换为“\ n”:
echo"<pre>".str_replace('\r\n', "\n", $post)."</pre>";
重构建议:
Decoding mysql_real_escape_string() for outputting HTML
简而言之,使用PHP mysqli_*
Prepared Statements来清理帖子,而不是mysqli_real_escape_string
。