2

所以我正在使用 FCKeditor,我遇到的问题是,当用户编写文档时,有时信息是从 Word 中复制的,有时它是直接在编辑器中编写的,有时它可以通过两种方式完成。这让我在数据库中留下了很多打开且从未关闭的标签。这让我的布局大打折扣,我正在努力寻找解决方案。

我将配置文件更改为粘贴为纯文本,我认为这会阻止 Word 格式传输,但它仍在执行此操作。

所以现在我试图找出一种方法来搜索开始标签并在信息发送到数据库之前将其删除。或者我是否缺少一些 FCKeditor 功能/配置选项来帮助我?

关于我应该如何进行的任何建议?

谢谢
李维

4

2 回答 2

2

作为一种安全预防措施,可以解决与安全相关的问题(例如<script>,用户插入的标签 - 您可能不想要)和与演示相关的问题(例如未关闭的标签),您可以使用服务器上的HTMLPurifier之类的工具,用于从浏览器接收到的内容。

当然,这并不能解决第一个问题,即用户可以在 FCKEditor 中输入任何他们想要的内容;但它将确保您的 HTML 既有效又安全。

实际上,即使 FCKEditor 没有为您提供无效的 HTML,您仍然可以使用 HTMLPurifier,只是为了安全。

这个想法是您提供以下列表:

  • 允许的标签
  • 这些标签的允许属性

而且,作为回报,HTMLPurifier 为您提供干净且有效的 HTML。

于 2009-09-16T04:35:40.683 回答
0

编辑:听起来您在编辑器中遇到了错误。您可以尝试不同的,和/或使用服务器端脚本,该脚本会通过并去除不匹配的 div 标签。

Html 允许大多数标签保持打开状态。如果标签打开而应该关闭,您可以将其列入白名单或黑名单进行搜索并将其从服务器端剥离。否则,您将很难理解 HTML 不是 XML,FCKeditor 生成 HTML,而 HTML 不会验证为 XML。如果它使您的打印输出中断,请尝试将 FCKeditor 输出包装在一个 div 中。

否则,请包括会扰乱页面布局的输入和输出的具体示例。

于 2009-09-16T01:45:45.190 回答