序版本:Dedecms CMS Dedecms v5.3 gbk
在使用Dedecms的过程中,可能会遇到用户发布内容时含有系统设置的非法字符,但系统没有明确提示具体是哪些非法文字,这会让用户感到困惑。为了解决这一问题,我们可以通过修改代码来实现对非法文字的明确提示。
问题原因:
用户发布的内容中可能包含系统中预先设定的非法字符,而系统未能提供具体的错误信息,导致用户无法快速定位并修正问题。
解决办法:
通过修改相关文件,使系统能够明确提示非法文字,方便用户根据提示进行修改。
需要修改的文件:
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();
}
代码功能解析:
1. 首先判断系统是否设置了禁止字符($cfg_notallowstr),并且检查用户提交的内容($svar)中是否包含这些禁止字符。
2. 如果发现非法字符,则通过正则表达式提取所有匹配的非法字符。
3. 将提取到的非法字符去重,并以逗号分隔的形式拼接成一个字符串。
4. 最后生成提示信息,告知用户哪些文字是不被允许的,并通过ShowMsg函数显示错误信息,同时终止程序运行。
通过以上修改,用户在发布内容时如果包含非法字符,系统将明确提示具体是哪些文字不符合要求,从而大大提高用户体验和操作效率。
希望这篇教程能帮助到正在使用Dedecms的朋友!如果您还有其他疑问,欢迎继续探讨。