標籤:
不知從哪裡看到文章,但是實用:
背景:discuze就單純的錄製一個註冊指令碼,日誌中沒有報錯,在報告中就提示“抱歉,您的請求來路不正確或表單驗證串不符,無法提交””,以下方法可以解決
一般出現 “抱歉,您的請求來路不正確或表單驗證串不符,無法提交” 這種問題的地方都是在提交表單的時候出現的。
因為discuz 在提交表單的時候 會進行校正,submitcheck()函數,這個函數首先會校正表單中的formhash,如果formhash出現問題,那麼就會出現“抱歉,您的請求來路不正確或表單驗證串不符,無法提交” 這種問題。
submitcheck()這個函數 放在 source\class\helper\helper_form.php 中。
解決方案:
第一種方法:
請檢查你本地的時間是否和伺服器的時間一致。如果不一致請同步時間,更新緩衝。---這個要設定下
第二種方法:
請檢查你提交的表單中,是否有<input type="hidden" name="formhash" value="{$formhash}">,如果沒有請手動添加上去。(這種情況一般會在IE6上面出現,其他瀏覽器正常。)
第三種方法:
開啟“source\class\helper\helper_form.php”, 然後把“$_GET[‘formhash‘] == formhash() ”修改為“$_G[‘formhash‘] == formhash() ”。
第四種方法:
在提交的動作控制器中,去掉submitcheck()驗證。 (此種方法需要對discuz的核心比較熟悉。)比如,在註冊的時候,你需要找到“source\class\class_member.php”檔案中register_ctl類中的on_register()方法,在if(!submitcheck(‘regsubmit‘, 0, $seccodecheck, $secqaacheck)) { }處,可以把submitcheck()換成if(isset($_POST)){ } .雖然不安全,但是也是一種解決方案。---這個方法才解決我的問題
第五種方法:
重裝disucz… ----這個才治根
可能在使用第四種方法時,回放有提示其他錯誤,如“使用者名稱小於三位元”“密碼不一致”等其他古怪問題,乾脆來個重裝,只要刪除、var/www/html 下的檔案,在重新拷貝upload檔案,快速解決我的問題。。。終於沒有了莫名其妙的問題了
discuze回放提示“抱歉,您的請求來路不正確或表單驗證串不符,無法提交”