部份用戶,用了DEDE58的織夢模板,發(fā)布時,會出現(xiàn)織夢dedecms后臺發(fā)布文章提示“標(biāo)題不能為空”
產(chǎn)生這個問題的根本原因是php升級到5.4版本之后跟織夢的默認(rèn)設(shè)置有沖突導(dǎo)致。
第一種方法是:降級PHP環(huán)境版本為PHP5.3或5.2等。如果非自己服務(wù)器,可以用第二種方法:
第二種方法:
問題癥狀:V5.7登錄后臺后,發(fā)布英文標(biāo)題沒問題,發(fā)布中文會提示“標(biāo)題不能為空”。
問題根源:htmlspecialchars在php5.4默認(rèn)為utf8編碼,gbk編碼字符串經(jīng) htmlspecialchars 轉(zhuǎn)義后的中文字符串為空,也就是標(biāo)題為空。
解決辦法:給htmlspecialchars添加ENT_COMPAT ,'GB2312'參數(shù)修改編碼默認(rèn)值。
具體修改頁面:
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')
測試,發(fā)布文章成功。