雅安论坛

标题: 织梦后台系统基本参数保存不了中文,编辑文章时内容为空,可数据库里有内容 [打印本页]

作者: 匿名    时间: 2019-12-18 20:11
标题: 织梦后台系统基本参数保存不了中文,编辑文章时内容为空,可数据库里有内容
织梦后台系统基本参数保存不了中文,编辑文章时内容为空,可数据库里有内容,拉取不到内容,读取正常的问题解决办法织梦后台编辑文章时内容为空,可数据库里有内容,前台读取正常。在另一台服务器上是正常的,后台编辑里内容可以正常显示。

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

直到看到这篇解决办法:

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

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

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

改成
  1. $title =htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT, GB2312 );
复制代码


编辑器内容空白
打开include/ckeditor/ckeditor_php5.php找到大约 138行

  1. htmlspecialchars($value)
复制代码

替换为
  1. htmlspecialchars($value, ENT_COMPAT, GB2312 )
复制代码


如果是其它v5.6用fck编辑器的,就打开include/FCKeditor/fckeditor.php找到大约76行
  1. $HtmlValue = htmlspecialchars( $this->Value ) ;
复制代码

替换为
  1. $HtmlValue = htmlspecialchars($this->Value,ENT_COMPAT , GB2312 );
复制代码


系统站点设置网站名称、站点默认关键字、站点描述也是保存后显示为空,打开./dede/file_manage_view.php,搜索
  1. $content= htmlspecialchars($content);
复制代码

替换成
  1. $content =htmlspecialchars($content,ENT_COMPAT , GB2312 );
复制代码



作者: kkmllj2    时间: 2020-5-15 20:26
学习了 感谢




欢迎光临 雅安论坛 (https://www.yaanbbs.net/) Powered by Discuz! X3.4