Discuz! X3.1 回帖时 显示 请求来路不正确或表单验证串不符无法提交 内部错误,无法显示此内容

来源: 老季博客
日期: 2016-6-3
作者: 腾讯云/服务器VPS推荐评测/Vultr
阅读数: 52

昨天做了Discuz! X3.1论坛的迁移,结果在回帖时出现:请求来路不正确或表单验证串不符无法提交,”内部错误,无法显示此内容”。网上提供了前四种方法,都不行,下面我们说下我们的方法五。

这种问题的地方都是在提交表单的时候出现的。

因为discuz 在提交表单的时候 会进行校验,submitcheck()函数,这个函数首先会校验表单中的formhash,如果formhash出现问题,那么就会出现“抱歉,您的请求来路不正确或表单验证串不符,无法提交” 这种问题。

Discuz! X3.1 回帖时 显示 请求来路不正确或表单验证串不符无法提交 内部错误,无法显示此内容

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)){ } .虽然不安全,但是也是一种解决方法。

=============================================================================

经过分析以后发现,回帖时服务器返回的是500错误,下面是我们的解决办法。

方法五:

后台 -> 工具 -> 文件校验,检查被修改的文件,通常是PHP文件出错。将文件替换成官方的文件即可。

链接到文章: https://jiloc.com/41511.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注