欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

织梦dedecms后台发布文章提示“标题不能为空” 修改源码 GBK GB2312 linux window都可用 有大用 有大大用

shiping1 的头像

 问题症状:V5.7登录后台后,发布英文标题没问题,发布中文会提示“标题不能为空”。


问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。

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

具体修改页面:

1、dede/article_add.php 和 dede/article_edit.php 和 dede/archives_do.php 和 sys_info.php
其实dede/下面的php有好多文件htmlspecialchars 要修改

$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行    include/helpers/filter.helper.php 有4个 
  include/helpers/debug.helper.php(这个文件里这个函数暂时不改,有问题再说) 有2个
将 htmlspecialchars($value)  替换为 htmlspecialchars($value, ENT_COMPAT ,'GB2312')

3) dede/templets/sys_info.htm  大约 345, 357行 
htmlspecialchars($row['value'])   替换为 htmlspecialchars($row['value'], ENT_COMPAT ,'GB2312')
测试,发布文章成功。

4) 如果还有问题 就在.htm,.php中搜htmlspecialchars进行相应的替换


5) ask\libraries\FCK\fckeditor.php  约60行

$HtmlValue = htmlspecialchars( $this->Value ) ; 替换为 htmlspecialchars($this->Value, ENT_COMPAT ,'GB2312')


提示:若不想修改程序源码的话,建议更换到PHP5.3版本,等织梦升级支持PHP5.4以后再更换空间服务器。

来自 http://www.sudu.cn/service/detail/1/2/2/8/12288.html

普通分类: