开工了,首先祝贺大家猴年大吉!早上ytkah用dedecms发布文章提示"标题不能为空",春节这段时间基本没更新文章,回来后得赶紧补回来,可一开始就碰到这问题,以ytkah喜欢钻研的精神一定要先折腾一下怎么修改。
新的一年,我们用的云服务器有进行了升级,有些设置得调整一下。
问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空.
解决办法:给htmlspecialchars添加ENT_COMPAT ,’GB2312’参数修改编码默认值.
具体修改页面,代码如下:
1、dede/article_add.php
将$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
改为$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312′);
2、dede/article_edit.php
将$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
改为$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312′);
3、include/ckeditor/ckeditor_php5.php 138行左右,
将htmlspecialchars($value)
改为htmlspecialchars($value, ENT_COMPAT ,'GB2312′)
改完以后一切OK了,"标题不能为空"的提示不再出现了,文章也可以正常发布了