来自数据库的PHP echo代码

时间:2013-09-28 16:35:03

标签: php html mysql

我有一个数据库设置来存储用户输入,然后显示它们放在页面上的内容。

$input = mysql_real_escape_string(stripslashes(addslashes($_POST["input"])));
//Later on
echo '<div>'.$input.'</div>';

我去了textarea并键入了一些基本的php代码"<?php echo 'blahblah'; ?>,",并且它正常提交到数据库,但主页没有显示任何内容。没有'blahblah',没有标签。我希望它显示整个"<?php echo 'blahblah'; ?>",以便人们可以发布他们想要的任何内容。

2 个答案:

答案 0 :(得分:0)

逃避需要适合其背景。

  • 插入数据库时​​,请使用mysql_real_escape_string(或迁移到较新的mysqli_real_escape_string或PDO)或阅读参数化查询(AKA准备语句)。
  • 以HTML格式显示时,请使用htmlspecialcharshtmlentities

永远不要同时使用两者,因为你会陷入混乱,永远不会使用stripslashes(addslashes(...)),因为这没有任何意义。

答案 1 :(得分:-1)

您应该尝试以下方法:

echo '<div>'.htmlentities($input).'</div>';

它转换特殊字符,例如&lt;和&gt;到html实体,以便它们在浏览器中正确显示。