一般出现 “抱歉,您的请求来路不正确或表单验证串不符,无法提交” 这种问题的地方都是在提交表单的时候出现的。 因为discuz 在提交表单的时候 会进行校验,submitcheck()函数,这个函数首先会校验表单中的formhash,如果formhash出现问题,那么就会出现“抱歉,您的请求来路不正确或表单验证串不符,无法提交” 这种问题。 submitcheck()这个函数 放在 source\class\helper\helper_form.php 中。 解决方法: 第一种方法:请检查你本地的时间是否和服务器的时间一致。如果不一致请同步时间,更新缓存。 . p0 t2 G: x& H: k5 u
第二种方法:
! q# h0 C! d; A0 S请检查你提交的表单中,是否有<input type="hidden" name="formhash" value="{$formhash}">,如果没有请手动添加上去。(这种情况一般会在IE6上面出现,其他浏览器正常。)
3 S" s# H6 i6 c- z3 q4 z" H8 {7 @% O第三种方法:! w: A5 ^3 y5 L$ x3 y7 M1 _
打开“source\class\helper\helper_form.php”, 然后把“$_GET['formhash'] == formhash() ”修改为“$_G['formhash'] == formhash() ”。
/ Q ?7 y9 F+ p* f8 W. _0 s第四种方法:+ W. W$ @/ b* z2 ~
在提交的动作控制器中,去掉submitcheck()验证。 (此种方法需要对discuz的核心比较熟悉。)比如,在注册的时候,你需要找到“source\class\class_member.php”文件中register_ctl类中的on_register()方法,在if(!submitcheck('regsubmit', 0, $seccodecheck, $secqaacheck)) { }处,可以把submitcheck()换成if(isset($_POST)){ } .虽然不安全,但是也是一种解决方法。 : f4 z3 \ Q* T% }$ w% O3 Y
第五种方法:
2 P1 }# r' a7 w3 u Y h; N重装disucz.... |