网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程>>dedecms教程

Dedecms Dede文章增加HTML自定义字段字符过滤问题解决方法

时间:2025-03-30 05:12:43    来源:    人气:0

在Dedecms后台频道模型中增加自定义字段时,通常HTML文字编辑器可以满足用户的基本编辑需求。这包括单行或多行文本的编辑功能。然而,在实际使用过程中,我们可能会遇到Dedecms自动过滤掉某些敏感字符的问题,例如style样式或百度地图JS调用问题。本文将围绕这两个问题分享一些解决经验。

建立自定义字段的方法可以参考相关教程《Dedecms如何添加自定义字段与前台调用内容》。

### HTML文字样式编辑乱码问题

Dedecms默认提供的文本编辑器虽然界面简单,但非常实用。尽管我们也尝试过使用更强大的编辑器,如百度的UEditor,但由于其需要二次开发(如上传图集问题、本地上传按钮不可用等),最终还是选择了默认的文本编辑器。

自定义的HTML编辑器功能虽然强大,但在数据安全性方面,Dedecms会对某些敏感词或非法代码进行过滤。例如,在评论区域,系统会过滤掉可能带来安全风险的代码。这种过滤机制通过`include/helpers/filter.helper.php`文件实现。被过滤的关键字包括:


$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
    

根据实际需求,如果需要保留HTML样式的正常显示,可以删除数组中的`style`关键字。这样即可解决HTML文本编辑器的样式乱码问题。

### 百度地图JS失效问题

要生成百度地图,可以访问百度地图生成器地址,并按照提示设置完成后复制代码。只需复制``之间的代码即可。其他部分可以根据实际情况直接写入内容页模板中。需要注意的是,百度地图需要提供开发者密钥,站长们可以自行申请后将其嵌入到内容模板中。

以下是显示地图的区域代码示例:



接下来,将生成的JS代码全部复制粘贴到自定义文本框内。如果担心字符数限制,可以适当调整输入框大小。

完成上述操作后,前台显示一切正常,但再次进入编辑页面时,可能会发现某些字符(如`title`、`script`等)被过滤成类似`script`的乱码,导致地图无法正常显示。

同样地,我们需要对`filter.helper.php`文件中的过滤规则进行调整:

$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
    

删除`title`、`script`和`javascript`关键字。即便如此,前台地图仍可能失效。通过对比工具发现,逗号(`,`)也被过滤了。经过进一步研究,可以在`filter.helper.php`文件的第68行附近找到以下代码:

$val = preg_replace('/([x00-x08,x0b-x0c,x0e-x19])/', '', $val);
    

将其修改为:

$val = preg_replace('/([x00-x08|x0b-x0c|x0e-x19])/', '', $val);
    

这样即可解决问题。不过需要注意,这种方法可能涉及一定的安全风险。如果不删除上述字段,还有其他替代方案。实际上,仅修改第68行代码就足够解决地图乱码问题。在`filter.helper.php`文件中,删除相关字段即可。

以上方法可以帮助您解决Dedecms中HTML编辑器样式乱码及百度地图JS失效的问题。希望对您有所帮助!

相关文章

  • Dedecms 删除文档时同时清除文章中图片的方法

    Dedecms 删除文档时同时清除文章中图片的方法

    在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...
    2025-03-31
  • Dedecms上传图片提示302错误ERROR的解决方法

    Dedecms上传图片提示302错误ERROR的解决方法

    在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...
    2025-03-31
  • DEDECMS模板使用教程

    DEDECMS模板使用教程

    如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...
    2025-03-31
  • Dedecms Dede 附加表自定义字段与主表文章关联方法

    Dedecms Dede 附加表自定义字段与主表文章关联方法

    在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...
    2025-03-31

公众号