如何将wysiwyg编辑的文本插入数据库

时间:2014-03-25 15:20:40

标签: php mysql

理念

我的项目中有一个论坛,我正在尝试实现所见即所得的编辑器来发布问题和答案。实际上该项目已经完成,现在我正在尝试将NicEdit所见即所得的编辑器实现到所有必需的textareas。我在发布数据的数据库插入之前使用了以下几行:

$post_body = $_POST['post_body'];
$post_body = nl2br(htmlspecialchars($post_body));
$post_body = mysqli_real_escape_string($db_conx,$post_body);

问题

当我插入发布的数据时,我得到以下输出:

OUTPUT

结论

我想知道如何将wysiwyg编辑的内容插入数据库。除此之外,请建议我一些很好的wysiwyg插件,这些插件很容易嵌入到我的项目中。目前,我正在使用NicEdit,它很容易嵌入,但功能有限。

2 个答案:

答案 0 :(得分:0)

不要这样做:

$post_body = nl2br(htmlspecialchars($post_body));

这就是如何创建纯文本的HTML表示。您要求人们提交HTML,而不是纯文本。

(但是,请实施基于白名单的HTML感知XSS过滤器,例如HTML Purifier)

答案 1 :(得分:0)

为什么不在回复之前用htmlspecialchars_decode()解码它?

这可以解决您的问题。

编辑:

您可以执行strip_tags()并且只允许使用少量标记标记。

例如:

// Allow <p> and <a> echo strip_tags($text, '<p><a>');

因此,您可以删除像<script>

这样的风险标签