今天用DedeCMS,在用戶中心文章中添加了一些自定義字段,結果發(fā)現(xiàn)修改文章的時候提示“數(shù)據(jù)校驗不對,程序返回”。
1、修改 member\inc\inc_archives_functions.php 文件
找到這段,紅色部分是增加的兩行
/**
* 載入自定義表單(用于編輯)
* @bug 修正編輯時候沒有輸出dede_fieldshash輸入框 by uu6c.com
* @param string $fieldset
* @param string $fieldValues
* @param string $loadtype
* @return string
*/
function PrintAutoFieldsEdit(&$fieldset, &$fieldValues, $loadtype='all')
{
global $cfg_cookie_encode;
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($fieldset);
$dede_addonfields = "";
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield'
|| ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
{
$dede_addonfields .= ( $dede_addonfields=='' ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
echo GetFormItemValueA($ctag,$fieldValues[$ctag->GetName()]);
}
}
}
echo "<input type='hidden' name='dede_addonfields' value=\"".$dede_addonfields."\">\r\n";
echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($dede_addonfields.$cfg_cookie_encode)."\" />";
}
2、找到如下幾行,刪除或者注釋掉
// 這里對前臺提交的附加數(shù)據(jù)進行一次校驗
$fontiterm = PrintAutoFieldsAdd($cInfos['fieldset'],'autofield', FALSE);
if ($fontiterm != $inadd_f)
{
ShowMsg("提交表單同系統(tǒng)配置不相符,請重新提交!", "-1");
exit();
}
再次編輯提交就沒問題了。