织梦用php5.4,织梦后台系统设置在PHP5.4环境中不能保存中文参数的解决方法

本文介绍了当使用GBK版本的DedeCMS后台在PHP5.4环境下遇到中文内容无法保存的问题时,如何通过修改模板文件和编辑器代码进行解决。主要涉及对htmlspecialchars函数的参数调整,以实现中文转码,从而修复系统基本参数、编辑器、文章发布页标签及中文TAG的显示问题。
摘要由CSDN通过智能技术生成

在没用PHP5.4的环境做Dede后台的时候,织梦无忧一直没有遇到这个问题,昨天上传一个新的模版到空间去测试发现后台的系统基本参数设置中所有的中文内容都无法保存,关于这个问题,其实以前也听说过,知识一直没有遇到,这是因为网站编码的问题,UTF-8版本的织梦后台在PHP5.4环境下没有这个问题,只有GBK版本的后台才会出现这个问题,所以需要给表单中的中文转码踩能解决这个问题。

7de07f84ba10dbe807cc470be5981891.png

一、后台基本参数无法保存中文的解决方法:

打开dede\templets\sys_info.htm,查找代码(大概在182行和192行,注意有两处)

htmlspecialchars($row['value'])

都替换成:

htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312')

如果还发现有其他页面也有这个问题,同理,打开对应的模版文件,搜索相同字符再替换即可解决。

二、编辑器的中文无法保存的解决方法:

打开include/ckeditor/ckeditor_php5.php,查找代码(大概在第137行)

dede_htmlspecialchars($value)

修改成

dede_htmlspecialchars($value, ENT_COMPAT, 'GB2312' )

三、文章发布页标签不显示的解决方法:

打开dede/article_add.php 和 dede/article_edit.php,查找代码(分别在第101行和第108行)

dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen))

均改为:

dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312')

四、中文tag无法显示的解决方法:

打开 dede/templets/tags_main.htm,查找代码(大概在第82行)

htmlspecialchars($fields['tag'])

修改为:

htmlspecialchars($fields['tag'],ENT_COMPAT ,'GB2312')

以上四个解决方法基本能搞定gbk版本的Dede后台在PHP5.4环境下不显示中文的问题,其实就是加了一个转码而已,原理很简单,如果还有其他什么地方的问题,可以参考此方法做类似修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值