最近在一个朋友的织梦登录后台后,发布英文标题没问题,但是发布中文会提示“标题不能为空”。查找一番,找出问题根源: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));
 
DedeCMS发布文章提示“标题不能为空”的解决方法
 
修改前
 
DedeCMS发布文章提示“标题不能为空”的解决方法
 
修改后
 
2、打开文件include/ckeditor/ckeditor_php5.php,将以下代码(大概在第138行):
 
 
dede_htmlspecialchars($value)
 
替换为
 
 
dede_htmlspecialchars($value ENT_COMPAT ,’GB2312′)
 
DedeCMS发布文章提示“标题不能为空”的解决方法
 
修改前
 
DedeCMS发布文章提示“标题不能为空”的解决方法
 
修改后
 
把修改后的文件上传至服务器,覆盖后再发布文章进行测试,可发布文章成功。