标签:
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