DedeCMS发布文章提示“标题不能为空”的解决方法

最近在一个朋友的织梦登录后台后,发布英文标题没问题,但是发布中文会提示“标题不能为空”。查找一番,找出问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。

解决办法:给htmlspecialchars添加ENT_COMPAT ,’GB2312’参数修改编码默认值。

具体修改页面:

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’)

 

修改前

修改后

把修改后的文件上传至服务器,覆盖后再发布文章进行测试,可发布文章成功。