遇到问题
使用 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 下的文件夹全部删除后,问题完全解决。