Php 如何为htmlentities设置标记异常?

Php 如何为htmlentities设置标记异常?,php,mysql,Php,Mysql,我正在运行一个MySql和PHP驱动的博客/评论风格的网站,希望它能够让用户在他们的文章中添加格式化标记,比如,,等等。但是,在运行类似htmlentities的东西时,用户不能发布类似或的内容,从而破坏网站 所以问题是我如何解决这个问题?我是否让htmlentities或类似的函数有一个允许标记的白名单?我还没有在这个问题上找到任何结果或帮助。目前,我对数据库实体的分层顺序是: $content = nl2br ($_POST["content"]); $content = mysql_rea

我正在运行一个MySql和PHP驱动的博客/评论风格的网站,希望它能够让用户在他们的文章中添加格式化标记,比如
,等等。但是,在运行类似htmlentities的东西时,用户不能发布类似
的内容,从而破坏网站

所以问题是我如何解决这个问题?我是否让htmlentities或类似的函数有一个允许标记的白名单?我还没有在这个问题上找到任何结果或帮助。目前,我对数据库实体的分层顺序是:

$content = nl2br ($_POST["content"]);
$content = mysql_real_escape_string($content);
$content = trim($content);
$content = htmlentities($content);

谢谢你的帮助。再一次,我想知道htmlentities是否是我想要用来实现这一点的功能,所以任何建议或寻找的地方都将不胜感激

白名单是必须的。。。使用带有第二个参数的函数

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
//允许和
回音条标签($text,);

不要将编码的html保存在数据库中。

您的操作顺序是非常非常错误的。您不应该在SQL转义的同时进行内容筛选。对不起,我还是个新手。我应该怎么做?nl2br是我发现的一种方法,可以确保/n换行符以一种简单的方式保持这种格式。请阅读我发布的链接。标签为“阅读更多”的那一个。它会教你不同类型的验证和卫生,以及在哪里和什么时候应该使用。谢谢你-我昨晚没有看到这一部分。这是非常具有信息性的,我的理解是,我将使用escape_string和trim函数来处理输入数据库的数据,并且在检索要嵌入到网页中的数据时,您将使用htmlentities或strip_标记进行html标记过滤和白名单?同样,我对db消毒和验证还是新手,所以感谢您对这个问题的指导。