Php 如何将所见即所得编辑文本插入数据库
想法 我在我的项目中有一个论坛,我正在尝试实现所见即所得编辑器来发布问题和答案。实际上,这个项目已经完成了,现在我正在尝试将NicEdit所见即所得编辑器实现到所有需要的文本区域。在插入已发布数据的数据库之前,我将使用以下行:Php 如何将所见即所得编辑文本插入数据库,php,mysql,Php,Mysql,想法 我在我的项目中有一个论坛,我正在尝试实现所见即所得编辑器来发布问题和答案。实际上,这个项目已经完成了,现在我正在尝试将NicEdit所见即所得编辑器实现到所有需要的文本区域。在插入已发布数据的数据库之前,我将使用以下行: $post_body = $_POST['post_body']; $post_body = nl2br(htmlspecialchars($post_body)); $post_body = mysqli_real_escape_string($db_conx,$pos
$post_body = $_POST['post_body'];
$post_body = nl2br(htmlspecialchars($post_body));
$post_body = mysqli_real_escape_string($db_conx,$post_body);
问题
当我插入发布的数据时,我得到以下输出:
结论
我想知道如何将所见即所得编辑的内容插入数据库。除此之外,请向我推荐一些很好的wysiwyg插件,它们很容易嵌入到我的项目中。目前,我正在使用NicEdit,它很容易嵌入,但功能有限。不要这样做:
$post_body = nl2br(htmlspecialchars($post_body));
这就是如何创建纯文本的HTML表示。您要求人们提交HTML,而不是纯文本
(但是,是否要实现一个基于白名单、支持HTML的XSS过滤器,如HTML净化器)为什么不在回音之前用:对其进行解码 那可能会解决你的问题 编辑: 您可以这样做,并且只允许很少的标记标记 例如:
//允许和
回音条标签($text,)代码>
因此,如果我不这样做,你可以去掉像
这样的危险标签,我认为我的站点将容易受到脚本攻击。我说的对吗?我建议你回到答案的最后一段。不,这就是mysqli\u real\u escape\u string
的目的。我真的不知道你答案的最后一行,因为我对编程非常陌生。这一行有一个产品推荐,谷歌HTML净化器。它有文档。为什么在将某个内容放入数据库之前将其编码为HTML,然后将其解码为文本?最好删除编码步骤,然后稍后再对其进行解码。但这会使我的网站容易受到ryt的交叉脚本攻击吗?