問題現象:
今天在處理客戶問題反饋時候發現在dedecms5.7版本,當修改編輯文章高級屬性中(zhōng)的“發布時間”保存後文章标題丢失爲空沒有任何顯示 或 在部分(fēn)浏覽器下(xià)提示“标題不能爲空”,導緻文章修改後沒有了标題。
導緻根本原因:
dede默認在php5.3版本下(xià)運行良好,但是如果php升級到5.4,5.5, 5.6版本之後就會出現問題,因爲php5.4版本以上php函數htmlspecialchars()是将預定義字符串做轉換的,而htmlspecialchars()這個函數在php5.4或以上版本默認爲utf8編碼,如果這時候你的程序是gbk的編碼格式,那麽就會導緻轉義後的中(zhōng)文字符串爲空,也就是标題爲空。
解決辦法:給htmlspecialchars添加ENT_COMPAT ,'GB2312'參數修改編碼默認值。
具體(tǐ)修改步驟:
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 138行将htmlspecialchars($value)替換爲htmlspecialchars($value, ENT_COMPAT ,'GB2312')
[溫馨提示:如果你已經修改編輯器爲百度編輯器了,那麽第二步驟的修改原dedecms默認的ckeditor編輯器就不需要修改了。]
下(xià)一(yī)篇 dedecms增加按發布時間排序的功能
上一(yī)篇: ECSHOP在php5.4,php5.5報錯的處理方法