新闻中心

当discuz出现“抱歉,您的请求来路不正确或表单验证串不符,无法提交”错误的时候怎么办?

作者 / 无忧主机 时间 2014-07-31 18:21:25

Discuz这个源码程序虽然比较强大,深受广大站长朋友们使用,但是有些小问题会逐渐的形成,QQ互联有bug就算了,可是各种奇葩的问题就出现了,无忧主机小编的以为粉丝站长就出现 “抱歉,您的请求来路不正确或表单验证串不符,无法提交”,这种问题的地方都是在提交表单的时候出现的。 因为discuz 在提交表单的时候 会进行校验submitcheck()这个函数,这个函数首先会校验表单中的formhash,如果formhash出现问题,那么就会出现“抱歉,您的请求来路不正确或表单验证串不符,无法提交” 这种问题。所以既然找到了这种问题的出现所以无忧主机小编的解决方法又来了,当今网络的发展确实很快,虽然是这样的,但是无忧主机小编也测试了很多遍才杜绝了这个问题的出现。 submitcheck()这个函数 放在 source\class\helper\helper_form.php 中。 那么我们找到了方法就好解决问题了,接下来就看无忧主机小编分享的一下几种方法吧! 1、有可能是本地电脑的时间与网络的时间不一致导致,如果是这样那么我就把本地的时间与服务器的时间一致,那么服务器的时间是怎么判断的呢,就看您的空间是哪里的呢,无忧主机就有美国和香港的,那么您的是美国的就和美国的时间一样,是香港的就和香港的时间一样,时间怎么找呢?百度一下各个国家的当前时间即可 2、检查提交表单中是否存在<input type="hidden" name="formhash" value="{$formhash}">,如果没有就手动添加上去。 3、修改代码的获取方法,打开“source\class\helper\helper_form.php”, 然后把“$_GET['formhash'] == formhash() ”修改为“$_G['formhash'] == formhash() ”即可。 4、在提交的动作控制器中,去掉submitcheck()验证。 (此种方法需要对discuz的核心比较熟悉。)比如,在注册的时候,你需要找到“source\class\class_member.php”文件中register_ctl类中的on_register()方法,在if(!submitcheck('regsubmit', 0, $seccodecheck, $secqaacheck)) { }处,可以把submitcheck()换成if(isset($_POST)){ } .虽然不安全,但是也是一种解决方法。 5、如果以上方法都还没有解决您的问题,那么就是您的安装的源码有问题了,那么就需要从新在官网上面去下载打包上传到服务器,然后解压,这样不会导致丢失字节,所以这也是最后的解决方法了,也是最笨的解决方法了。 总结:按照无忧主机小编以上的几种方法就可以解决这个问题的出现,感谢站长朋友们对无忧主机小编的支持,我们会写出更优秀的文章来解决您们锁遇到的问题,谢谢您的观看!

本文地址:https://www.51php.com/discuz/15426.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服