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