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