本文實例講述了Dedecms自定義表單“數(shù)據(jù)校驗不對,程序返回錯誤”的解決方法。分享給大家供大家參考。具體分析如下:
在dedecms自定義表單做好之后我們提交數(shù)據(jù)有時會看到數(shù)據(jù)校驗不對,程序返回了,出現(xiàn)這類問題我會先確定diy.php文件是否在存,如果存在再查看input的id與name是不是與后臺定義一樣,如果一樣看看是不是重復(fù)了.
前幾天給一個網(wǎng)站重裝了DEDECMS系統(tǒng),當(dāng)時沒有注意到表單這一塊,今天來上班的時候同事跟新一反應(yīng)了這個情況 由于自定義表單模板是也是DIY的,就跟著官方模板中的數(shù)據(jù)進(jìn)行比較,測試得知,官方的模板中可以正常提交,也在比對中發(fā)現(xiàn)INPUT的參數(shù)dede_fieldshash的值不是一樣子的,隨即新一跟蹤到/plus/diy.php,代碼如下:
復(fù)制代碼代碼如下:$dede_fields = emptyempty($dede_fields) ? '' : trim($dede_fields);
$dede_fieldshash = emptyempty($dede_fieldshash) ? '' : trim($dede_fieldshash);
if(!emptyempty($dede_fields))
{
if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
{
showMsg('數(shù)據(jù)校驗不對,程序返回', '-1');
exit();
}
}
$diyform = $dsql->getOne("select * from dede_diyforms where diyid='$diyid' ");
if(!is_array($diyform))
{
showmsg('自定義表單不存在', '-1');
exit();
}
看到$cfg_cookie_encode這個變量可以在后臺中系統(tǒng)基本參數(shù)-》核心設(shè)置-》COOKIE加密碼,找到之前重裝之前的系統(tǒng)中參數(shù)即可。
解決方法:
1. /plus/diy.php 文件是否存在,是否對應(yīng).
2. 查看<input name='sex' id='sex' type="text" /> name,id,type,是否和后臺自定義表單對應(yīng).
3. value值是否和后臺自定義表單一直,如果不一直,就復(fù)制前臺預(yù)覽中的代碼。
4. 這段代碼后面的value值是唯一,每個網(wǎng)站有單獨(dú)的value值,所以也需要復(fù)制前臺預(yù)覽的網(wǎng)址代碼值.
希望本文所述對大家的dedecms建站有所幫助。
更多信息請查看IT技術(shù)專欄