POST TIME:2017-11-12 23:31
問題癥狀:dedecms的該板塊版本在登錄后臺后,發布英文標題沒問題,發布中文會提示“標題不能為空”,并且已經存在的中文文章在編輯器空白,而英文文章沒有問題,該問題再php5.3及以下版本不會出現,在php5.4版本以上就會出現。
問題根源:初步認定是因為編碼格式的問題,htmlspecialchars在php5.4默認為utf8編碼,gbk編碼字符串經 htmlspecialchars 轉義后的中文字符串為空,也就是標題為空。
解決辦法:給htmlspecialchars添加ENT_COMPAT ,'GB2312'參數修改編碼默認值。
具體修改頁面:
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.php138行
將htmlspecialchars($value)替換為htmlspecialchars($value, ENT_COMPAT ,'GB2312')
測試,發布文章成功。