thinkphp 验证码验证一直不通过

遇到问题

使用 thinkphp8.1 验证码类库(topthink/think-captcha),遇到验证码图片能显示,但是提交进行验证的时候一直验证失败。

调试过程

经过调试发现是 src/Captcha.php 文件中 check 的 $this->session->has(‘captcha’) 一直返回为 false。

使用 session_status() 发现一直返回是 1。

查看文档

查看官方文档发现,框架本身是没有开启 SESSION 的。

解决

于是按照文档说明,在 /app/middleware.php 中,开启 Session 初始化的注释

// Session初始化
// \think\middleware\SessionInit::class

改为

// Session初始化
 \think\middleware\SessionInit::class

后续

开启后发现依然验证不通过,最终经过一番折腾后,将 /runtime 下的文件夹全部删除后,问题完全解决。

发表评论