关注前端开发
HTML5、CSS3、Javascript

解决 discuz“抱歉,您的请求来路不正确或表单验证串不符,无法提交”

一般出现 “抱歉,您的请求来路不正确或表单验证串不符,无法提交” 这种问题的地方都是在提交表单的时候出现的。

因为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….

 

转载请注明出处:有点迷惘|技术blog » 解决 discuz“抱歉,您的请求来路不正确或表单验证串不符,无法提交”

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    不错,先收藏,再照做

    小狸8年前 (2012-12-20)回复
  2. #2

    感谢,是第一种办法。
    这两天遇到两次关于时间而导致的问题了,没想到这小小的系统时间竟然可以搞出这么多事情啊,看来以后帮别人看机器前要先检查系统时间是否正确了。。
    第一次是BIOS时间错误导致无法启动计算机,第二次就是无法登录论坛,呵呵,真神奇。

    木辛土申8年前 (2013-01-21)回复
  3. #3

    请问下怎么搞,看不太懂

    需要帮忙6年前 (2015-04-18)回复