出现“抱歉,您的请求来路不正确或表单验证串不符,无法提交”的问题通常是由于 表单验证失败导致的。具体原因和解决方法如下:
检查表单中的formhash
formhash是Discuz!在提交表单时进行校验的一个关键参数,用于确保请求的合法性和完整性。如果formhash出现问题,就会提示“表单验证串不符”。
解决方法:
确保表单中包含正确的formhash值。如果表单中没有formhash,请手动添加。
检查formhash的值是否为空,如果为空,在对应的PHP文件加入一段代码:`$formhash = FORMHASH;`。
检查本地时间和服务器时间
Discuz!在提交表单时会校验请求的时间戳,如果本地时间和服务器时间不一致,可能会导致验证失败。
解决方法:
同步本地时间和服务器时间,确保它们一致。
清除缓存,以确保新的时间设置生效。
检查表单提交的动作控制器
在某些情况下,提交的动作控制器中可能禁用了submitcheck()函数的验证。
解决方法:
如果确定需要禁用验证,可以在相应的控制器中移除或注释掉submitcheck()函数的调用。注意,这需要对Discuz!的核心代码有一定了解,并且可能会影响到系统的其他部分。
检查模板文件
某些模板文件中可能缺少必要的formhash代码,导致验证失败。
解决方法:
检查模板文件,确保包含正确的formhash代码。例如,在viewthread_node.htm文件中添加`&hash={FORMHASH}`。
检查缓存
清除data/cache/qrcode下的所有缓存文件,以确保新的表单提交能够被正确识别和处理。
检查插件和扩展
某些插件或扩展可能会干扰表单验证过程,导致验证失败。
解决方法:
禁用所有插件,逐个排查是否有插件导致的问题。
如果确定是某个插件导致的问题,可以考虑寻找替代插件或联系插件开发者寻求帮助。
通过以上方法,应该能够找到并解决“抱歉,您的请求来路不正确或表单验证串不符,无法提交”的问题。如果问题仍然存在,建议查看Discuz!的官方文档或寻求社区支持。