码迷,mamicode.com
首页 > 其他好文 > 详细

DEDECMS 添加文章时提示标题为空, 编辑文章编辑器空白 的解决方法

时间:2016-04-19 19:18:23      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

DEDECMS 版本: GBK 5.7 ( 万恶之源, 建议不要使用 GBK 或 GB2312 编码的 )   文本编辑器: ckeditor( DEDECMS 默认的)

原配置环境: window + IIS + PHP 5.3.28 

新配置环境: linux + nginx + php 5.5.30

PHP htmlspecialchars 更新日志

5.6.0 The default value for the encoding parameter was changed to be the value of the default_charset configuration option.
5.4.0 The default value for the encoding parameter was changed to UTF-8.
5.4.0 The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added.
5.3.0 The constant ENT_IGNORE was added.
5.2.3 The double_encode parameter was adde

 

出现这个问题, 与DEDECMS代码本身没有多大关系, 主要因为 php 5.4 后 htmlspecialchars 函数字符编码默认 UTF-8. GBK编码的字符串经过 htmlspecialchars 字符转义后的中文字符串为空了, 所以造成添加文章时提示标题为空, 编辑文章编辑器空白. 使用 DEDECMS UTF-8  版本就不会出现这个问题, 所以建议大家使用 UTF-8 版本的.

 

解决方法:

1.提示标题为空

修改 dede/article_add.php 和 dede/article_edit.php

$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));

替换: 

$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,‘GB2312‘);

2.编辑器内容空白

修改 include/ckeditor/ckeditor_php5.php

$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";

替换: 

$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value, ENT_COMPAT ,‘GB2312‘) . "</textarea>\n";

 

DEDECMS 添加文章时提示标题为空, 编辑文章编辑器空白 的解决方法

标签:

原文地址:http://www.cnblogs.com/itwo/p/5408944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!