织梦后台编辑文章时内容为空,可数据库里有内容,读取正常的问题解决办法

在四海电子项目中遇到织梦后台编辑文章时内容显示为空,但数据库内容正常,且前台显示无误。问题由PHP5.4版本的htmlspecialchars函数导致,该函数在处理GBK编码的字符串时使中文内容消失。通过将相关文件中的htmlspecialchars函数参数调整为指定GBK编码,解决了标题和编辑器内容为空的问题。
摘要由CSDN通过智能技术生成

昨天在做四海电子这个项目时,遇到了一个问题:织梦后台编辑文章时内容为空,可数据库里有内容,前台读取正常。在另一台服务器上是正常的,后台编辑里内容可以正常显示。

这是为什么呢?我解决这个问题花了一天。网上找了一些处理办法,都没有找到正解。


直到看到这篇解决办法:

dedecms出现这个问题与代码无关,主要是和PHP的版本有关,用的PHP5.4,更换成PHP5.2之后就不会有这个问题了。

问题原因是:php5.4版本中htmlspecialchars在php5.4默认为utf8编码,gbk编码的字符串经过htmlspecialchars 转义后的中文字符串为空了,所以造成添加文章时提示“标题不能为空”,编辑文章时编辑器内容空白。

解决的办法:
标题不能为空
修改dede/article_add.php 和 dede/article_edit.php 这2个文件。把$title =htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
改成$title =htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT, GB2312 );

编辑器内容空白
打开include/ckeditor/ckeditor_php5.php找到大约 138行
将htmlspecialchars($value)替换为htmlspecialchars($value, ENT_COMPAT, GB2312 )

如果是其它v5.6用fck

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值