Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将所见即所得编辑文本插入数据库_Php_Mysql - Fatal编程技术网

Php 如何将所见即所得编辑文本插入数据库

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

想法

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

$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的交叉脚本攻击吗?