discuze回放提示“抱歉,您的請求來路不正確或表單驗證串不符,無法提交”


不知從哪里看到文章,但是實用:

背景: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文件,快速解決我的問題。。。終於沒有了莫名其妙的問題了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM