今天帮一个客户做网站系统搬家,过程很顺利。10分钟后客户询问:织梦后台发布文章时,已经输入标题仍然提示“标题不能为空”是什么原因?沟通确认后发现,未搬家前正常,搬家后不正常,那么问题只能出现在服务器环境上,因此排查解决后分享解决方案。
“标题不能为空”问题复现
发布文章时,如果标题是纯英文或者数字则正常,如果标题是汉字,则会弹出提示“标题不能为空”。(下面截图时已经修复了这个问题)
“标题不能为空”原因分析
织梦5.7开始支持php是5.4版本,而这时的php5.4默认编码格式为UTF-8,跟云服务器环境的编码格式不一致导致这个问题。htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。
“标题不能为空”解决方案
给htmlspecialchars(函数)添加ENT_COMPAT ,’GB2312’编码格式,也就是给php的这个函数强制设定编码格式。
1、修改article_add.php文件
文件路径:dede/article_add.php
修改内容:在article_add.php文件中查找$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen)); 改成 $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,’GB2312′);
2、修改article_edit.php文件
文件路径:dede/article_edit.php
修改内容:在article_edit.php文件中查找$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen)); 改成 $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,’GB2312′);
3、修改ckeditor_php5.php文件
文件路径:include/ckeditor/ckeditor_php5.php
修改内容:在文件中查找htmlspecialchars($value) 改为 htmlspecialchars($value, ENT_COMPAT ,’GB2312′)
本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:聚云网,转载请注明出处:https://www.juyun.top/5562.html