在使用DedeCMS的过程中,有些用户可能会遇到一个棘手的问题:在后台发布文章时,英文标题能够正常发布,但中文标题却会提示“标题不能为空”。这主要是由于htmlspecialchars函数在PHP 5.4版本中默认使用UTF-8编码,而GBK编码的字符串经过htmlspecialchars转义后,其中文部分会被转换为空字符串,从而导致标题看似为空。
为了解决这一问题,可以通过修改代码参数来调整htmlspecialchars的默认编码设置。以下是具体的解决步骤:
1. 首先,打开dede/article_add.php和dede/article_edit.php文件。
在这两个文件中,找到大约位于第101行和第108行的代码:
$title = dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312');
将上述代码替换为以下内容:
dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
2. 接下来,打开include/ckeditor/ckeditor_php5.php文件。
在该文件中找到大约位于第138行的代码:
dede_htmlspecialchars($value)
将其替换为:
dede_htmlspecialchars($value ENT_COMPAT ,'GB2312')
完成以上修改后,请确保将更新后的文件上传至服务器,并覆盖原有的文件。随后再次尝试发布文章,此时应该可以顺利发布包含中文标题的文章。
通过这些简单的代码调整,DedeCMS后台发布文章时出现的“标题不能为空”问题即可得到妥善解决。希望这篇文章能帮助到正在为此困扰的朋友们!