Dedecms 是一款非常受欢迎的内容管理系统(CMS),广泛应用于搭建企业网站、博客和个人站点。然而,在使用 Dedecms 发表文章时,有时会遇到一个问题:系统提示“body has not allow words!”,导致文章无法正常上传或发表。这不仅影响了用户体验,也让管理员感到困惑。
为了更好地解决这一问题,我们需要了解其背后的原因。实际上,“body has not allow words!” 的意思是“文章中包含不允许的字符”。这通常是因为在后台的“系统”-“系统基本参数”设置中,互动设置部分配置了过多的敏感字词。这些敏感字词一旦被触发,就会阻止文章的发布,并显示上述提示。
如果发现会员无法正常发表文章,可以按照以下步骤排查并解决问题: 1. **检查敏感字词设置**:进入 Dedecms 后台,找到“系统”-“系统基本参数”-“互动设置”,查看是否设置了过多的敏感字词。如果有不必要的字词,建议删除或调整。 2. **测试修改效果**:清理多余的敏感字词后,重新尝试发表文章,确保问题已解决。
当然,为了让用户更清楚地理解错误原因,我们还可以将默认的英文提示改为中文提示。以下是具体的操作方法: ### 修改文件 打开文件 `inclide/fileter.inc.php`,找到大约第 19 行左右的代码段,并进行如下修改:

if($cfg_notallowstr != '' && eregi($cfg_notallowstr, $svar)) 
{ 
    preg_match_all("@{$cfg_notallowstr}@", $svar, $me); 
    $me = array_unique($me[0]); 
    $notallowkeys = ''; 
    foreach($me as $v){ 
        $notallowkeys .= $v . ', '; 
    } 
    // 修改提示信息为中文
    $msg = '您发布的内容中包含禁止使用的词汇:' . $notallowkeys; 
    ShowMsg($msg, '-1'); 
    exit(); 
}
    

完成上述修改后,将文件上传到服务器覆盖原文件即可。此时,当用户尝试发表包含敏感词汇的文章时,系统会弹出中文提示:“您发布的内容中包含禁止使用的词汇:XXX”,从而让用户更直观地了解问题所在。
通过以上方法,不仅可以有效解决 Dedecms 文章发表失败的问题,还能提升用户的操作体验。对于网站管理员来说,合理配置敏感字词列表,既能保障内容安全,又不会过度限制用户创作自由。希望这篇文章能帮助大家更好地管理和优化 Dedecms 站点!