本文实例讲述了Dedecms 5.7后台发布文章提示“标题不能为空”的解决方法。分享给大家,供大家参考学习。
在使用Dedecms CMS(Dedecms 5.7)时,有用户反馈在后台发布文章时会遇到一个问题:即使填写了标题,系统仍然提示“标题不能为空”。这个问题让许多用户感到困惑,尤其是当从官网直接下载的版本也出现了同样的问题时。那么,我们该如何解决呢?
以下是具体分析与解决方案:
问题症状
V5.7登录后台后,发布英文标题没有问题,但发布中文标题时会提示“标题不能为空”。
问题根源
问题的根源在于PHP函数htmlspecialchars的行为变化。在PHP 5.4中,默认编码为UTF-8,而Dedecms使用的GBK编码字符串经过htmlspecialchars转义后,中文字符会被视为无效字符并被移除,导致标题为空。
解决办法
为了修复这一问题,我们需要给htmlspecialchars函数添加额外参数,指定编码为GB2312,从而避免中文字符被错误处理。以下是具体的修改步骤:
1. 修改dede/article_add.php 和 dede/article_edit.php
找到以下代码:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
将其替换为:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen), ENT_COMPAT , 'GB2312');
2. 修改include/ckeditor/ckeditor_php5.php 第138行
找到以下代码:
htmlspecialchars($value)
将其替换为:
htmlspecialchars($value, ENT_COMPAT , 'GB2312')
完成以上修改后,重新测试发布文章功能,应该可以正常发布包含中文标题的文章。
其他建议
如果不想修改程序源码,也可以考虑将服务器环境降级到PHP 5.3版本,直到Dedecms官方升级并完全支持PHP 5.4后再更换空间服务器。
希望以上内容能帮助您解决问题!如果您还有其他疑问,请随时留言。