1

我需要使用所见即所得的编辑器来处理用户输入。

你如何在php中处理这个?

如果我检索数据并使用 htmlspecialchars,那么所有由所见即所得编辑器转换为特殊字符的字符都会被弄乱。

例如报价将是&quote;

当我htmlspecialchars在 php 中使用 & 将被转换为&

这将是一个明显的问题。有任何想法吗?

4

2 回答 2

0

您是否考虑过为正在修改的内容保留纯文本和额外的 HTML 记录?您可以显示纯文本,当您保存它时,您也可以将其转换为 html 并将其保存在单独的字段中?

但是,如果特殊字符被转换为 HTML,当您将文本打印到 html 中的可编辑表单字段时,它们是否仍会正确显示(对用户)?

如果我误解了,请告诉我

于 2011-08-03T13:50:29.433 回答
0

大多数编辑器(CKEditor、CLEditor 和 NicEdit 等等)都支持两种输入模式:可视输入和直接输入(通常称为 HTML 模式)。

当用户在可视模式下输入文本时,编辑器负责在用户键入他/她的内容时将类似 html 的字符转换为相应的 HTML 实体。在这种模式下,编辑器通常会为用户添加标记(主要是段落)。

直接输入的工作方式与您对名称的期望一样;用户会接触到组成他或她的内容的 HTML。

您应该如何处理输入数据主要取决于用户角色。

如果用户是可信的(即公司网站的管理员),用户应该能够使用这两种输入模式。

如果用户不受信任(匿名用户在博客文章上发表评论),则用户应该无法输入(可能是恶意的,想想XSS)标记。

如果您的用户需要一些选项来格式化他们的内容,您可能应该考虑使用另一种类型的标记,例如BBCode。这可以防止用户将任何<script>标签注入到可能显示给其他用户的内容中。

不过,您仍然需要从用户内容中去除任何 HTML 标记。

于 2011-08-03T14:41:42.377 回答