织梦dedecms后台发布文章时,已经输入标题仍然提示“标题不能为空”的解决方案

今天帮一个客户做网站系统搬家,过程很顺利。10分钟后客户询问:织梦后台发布文章时,已经输入标题仍然提示“标题不能为空”是什么原因?沟通确认后发现,未搬家前正常,搬家后不正常,那么问题只能出现在服务器环境上,因此排查解决后分享解决方案。

“标题不能为空”问题复现

发布文章时,如果标题是纯英文或者数字则正常,如果标题是汉字,则会弹出提示“标题不能为空”。(下面截图时已经修复了这个问题)

织梦dedecms后台发布文章时,已经输入标题仍然提示“标题不能为空”的解决方案

“标题不能为空”原因分析

织梦5.7开始支持php是5.4版本,而这时的php5.4默认编码格式为UTF-8,跟云服务器环境的编码格式不一致导致这个问题。htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。

织梦dedecms后台发布文章时,已经输入标题仍然提示“标题不能为空”的解决方案

“标题不能为空”解决方案

给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

(0)
打赏 微信扫一扫 微信扫一扫
objectobject金牌
上一篇 2020年9月14日 下午11:18
下一篇 2020年9月16日 上午9:23

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

问答社区 在线客服
咨询电话

iphone 咨询热线:13001069197

服务时间:上午 9:00 至晚上 21:00

联系我们

qq 技术:109033286

qq 运维:3423710838

email 邮箱:drhxxkj@163.com

2022072119482661 808026766

分享本页
返回顶部
上云攻略全知道

企业上云,购买云服务器攻略帮您节省上云成本,价值千元 的上云攻略,让您省到就是赚到!

查看详情