理念
我的项目中有一个论坛,我正在尝试实现所见即所得的编辑器来发布问题和答案。实际上该项目已经完成,现在我正在尝试将NicEdit所见即所得的编辑器实现到所有必需的textareas。我在发布数据的数据库插入之前使用了以下几行:
$post_body = $_POST['post_body'];
$post_body = nl2br(htmlspecialchars($post_body));
$post_body = mysqli_real_escape_string($db_conx,$post_body);
问题
当我插入发布的数据时,我得到以下输出:
结论
我想知道如何将wysiwyg编辑的内容插入数据库。除此之外,请建议我一些很好的wysiwyg插件,这些插件很容易嵌入到我的项目中。目前,我正在使用NicEdit,它很容易嵌入,但功能有限。
答案 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>