下面我們一起來看如何解決discuz x2.5升級后,提示:抱歉,您的請求來路不正確或表單無法提交問題,希望此教程對大家會帶來幫助.
問題:discuz x2.5升級后(2013-02-22重要安全更新)發先論壇主題詳情頁在點擊支持和反對是會提示:抱歉,您的請求來路不正確或表單驗證串不符,無法提交.
原因:模板內容頁文件對應鏈接缺少hash.
解決方法:
1.在viewthread_node.htm文件中分別搜索:
- <a id="recommend_add" href="forum.php?mod=misc&action=recommend&do=add&tid=$_G[tid]
- //和:
- <a id="recommend_subtract" href="forum.php?mod=misc&action=recommend&do=subtract&tid=$_G[tid]
2.在其后分別添加&hash={FORMHASH}
即,添加后為:
- <a id="recommend_add" href="forum.php?mod=misc&action=recommend&do=add&tid=$_G[tid]&hash={FORMHASH}
- //和:
- <a id="recommend_subtract" href="forum.php?mod=misc&action=recommend&do=subtract&tid=$_G[tid]&hash={FORMHASH}
3.登錄discuz后臺更新模板緩存.
其它如果不是因為升級問題我們可參考下面5種辦法來解決,一般出現 “抱歉,您的請求來路不正確或表單驗證串不符,無法提交” 這種問題的地方都是在提交表單的時候出現的.
因為discuz 在提交表單的時候 會進行校驗,submitcheck()函數,這個函數首先會校驗表單中的formhash,如果formhash出現問題,那么就會出現“抱歉,您的請求來路不正確或表單驗證串不符,無法提交” 這種問題.
submitcheck()這個函數 放在 sourceclasshelperhelper_form.php 中.
解決方法:
第一種方法:
請檢查你本地的時間是否和服務器的時間一致。如果不一致請同步時間,更新緩存。
第二種方法:
請檢查你提交的表單中,是否有<input type="hidden" name="formhash" value="{$formhash}">,如果沒有請手動添加上去,這種情況一般會在IE6上面出現,其他瀏覽器正常.//開源軟件:Vevb.com
第三種方法:
打開“sourceclasshelperhelper_form.php”,然后把“$_GET['formhash'] == formhash() ”修改為“$_G['formhash'] == formhash() ”.
第四種方法:
在提交的動作控制器中,去掉submitcheck()驗證,此種方法需要對discuz的核心比較熟悉,比如,在注冊的時候,你需要找到“sourceclassclass_member.php”文件中register_ctl類中的on_register()方法,在if(!submitcheck('regsubmit', 0, $seccodecheck, $secqaacheck)) { }處,可以把submitcheck()換成if(isset($_POST)){ },雖然不安全,但是也是一種解決方法.
新聞熱點
疑難解答