允许在文本区域中输入HTML

时间:2014-03-16 14:22:19

标签: javascript php jquery html tags

所以我不知道我是在Google或Stackoverflow上寻找错误的东西,但我想实现这个目标 -

表单中有一个文本区域,我希望用户能够输入HTML标记。

因此用户可以将其输入文本区域:

<html>
<p>Hello World</p>
</html>

然后由AJAX和JavaScript将其提交到数据库,但似乎摆脱了标签。

我想要的是在返回数据时保留标签,但实际上不会影响文本区域中的其他数据。例如,如果我要回显文本区域的内容,它会回应:

<html>
<p>Hello World</p>
</html>

作为纯文本。

好的,我已经找到了使用htmlspecialchars的根本,它可以实现我想要的功能,因为它将标签显示为纯文本。但是我想要一些标签来执行,例如粗体标签。我如何组合htmlspecialchars和striptags以允许标记显示为纯文本,但也允许执行条带标记中指定的标记。

3 个答案:

答案 0 :(得分:3)

您无需(或可以)做任何事情来允许用户输入HTML标记。原因是无论如何输入都是纯文本,因此任何<字符都是按原样获取的。因此,如果用户键入<a>,则会将这三个字符插入到表单数据中。

您对数据执行的操作(服务器端或其他方式)可能会也可能不会处理HTML标记。这完全取决于你的代码。如果您只是在生成的HTML页面上回显所有内容,那么HTML标记将具有通常的效果。如果您希望将其作为文本呈现为可见标记,则只需将&编辑为&amp;,将任何<编码为&lt;

答案 1 :(得分:2)

您不需要做任何事情,只要您不过滤用户提交的文字,它就会自动执行。

答案 2 :(得分:1)

N.B。如果要将输入的HTML回显给用户,请非常了解输入的HTML中的潜在恶意代码。此安全问题称为跨站点脚本(或XSS)。

换句话说:永远不要相信输入的代码