本文实例讲述了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后再更换空间服务器。

希望以上内容能帮助您解决问题!如果您还有其他疑问,请随时留言。