我有一个数据库设置来存储用户输入,然后显示它们放在页面上的内容。
$input = mysql_real_escape_string(stripslashes(addslashes($_POST["input"])));
//Later on
echo '<div>'.$input.'</div>';
我去了textarea并键入了一些基本的php代码"<?php echo 'blahblah'; ?>,"
,并且它正常提交到数据库,但主页没有显示任何内容。没有'blahblah',没有标签。我希望它显示整个"<?php echo 'blahblah'; ?>"
,以便人们可以发布他们想要的任何内容。
答案 0 :(得分:0)
逃避需要适合其背景。
mysql_real_escape_string
(或迁移到较新的mysqli_real_escape_string
或PDO)或阅读参数化查询(AKA准备语句)。htmlspecialchars
或htmlentities
。永远不要同时使用两者,因为你会陷入混乱,永远不会使用stripslashes(addslashes(...))
,因为这没有任何意义。
答案 1 :(得分:-1)
您应该尝试以下方法:
echo '<div>'.htmlentities($input).'</div>';
它转换特殊字符,例如&lt;和&gt;到html实体,以便它们在浏览器中正确显示。