织梦dedecmsV5.7后台编辑文章中文标题发布失败的解决方法
织梦是一款比较有名的CMS网站管理系统了,由于它用起来简单和开源受到了很多站长朋友的青睐,目前国内很多的企业站,展示站等大多数都是用这款程序二次修改搭建的了,但是这款程序因为是开源的,可能没有专门的人员对此进行升级维护,所以也会有一些漏洞,昨天小编帮一位站长朋友用PHP空间安装了这款DEDECMS程序,安装的比较顺利,可是今天这位站长朋友登陆后台发布文章的时候确出现了一个奇怪的问题,那就是当输入中文标题发布文章的时候总是发布不成功,还提示标题不可以为空。当时小编又测试了用英文来测试却可以。小编开始认为可能是程序没有上传完毕就安装了,于是就又再次的上传安装了一遍还是这样提示。小编经过查询了一些资料找到了问题的原因。现在PHP版本如果高点可能没有就不会提示这个报错了。如果低于PHP5.3的就可能会出现这个报错了,那么究竟该如何去解决呢? 第一步:连接FTP软件,按照目录路径找到include/ckeditor/ckeditor_php5.php使用高级编辑器打开在137行代码:
$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";
改为:
$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value, ENT_COMPAT ,'GB2312′) . "</textarea>\n";
第二步:按照目录路径找到dede/article_add.php文件,使用高级编辑器打开在101行如下代码:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
修改为:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312′);
第三步:按照目录路径找到dede/article_edit.php文件使用高级编辑器打开找到108行代码如下:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
修改为:
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312′);
把以上三个文件中的这些代码都修改后,保存上传到FTP中覆盖之前的文件。然后再登陆网站的后台一键更新下缓存,再去发布文章的时候就可以了。其实问题的主要原因就是函数:htmlspecialchars()经过转义后把标题的中文字符串转义为空了。以上三个步骤其实就是再把参数修改默认为GB2312的编码格式就解决了。