Thinkphp5.0.11 验证码永远错误

作者:神秘网友 发布时间:2020-09-23 10:55:46

Thinkphp5.0.11 验证码永远错误

Thinkphp5.0.11 验证码永远错误

为什么80%的码农都做不了架构师?>>>   Thinkphp5.0.11 验证码永远错误

使用 ThinkPHP5.0.11 版本做登录模块时发现登录时验证码怎么输永远都是验证失败的

导致原因为

生成验证码时传递了配置,而验证验证码时使用Tp自带的验证,未带相同的配置

现将调试过程与结果记录下

生成二维码地址

http://localhost/index.php/captcha.html

Thinkphp5.0.11 验证码永远错误

找到验证码的文件类

Captcha.php

Thinkphp5.0.11 验证码永远错误

entry 方法生成验证码

 // 保存验证码
 $key                   = $this->authcode($this->seKey);
 $code                  = $this->authcode(strtoupper(implode('', $code)));
 $secode                = [];
 $secode['verify_code'] = $code; // 把校验码保存到session
 $secode['verify_time'] = time(); // 验证码创建时间
 Session::set($key . $id, $secode, '');

验证码是已键值对保存于SESSION中的

打印下存的 key 是啥

Thinkphp5.0.11 验证码永远错误

结果

Thinkphp5.0.11 验证码永远错误

DolphinPHP.COM 这个是自己在 Config.php 设置的验证码密钥

Thinkphp5.0.11 验证码永远错误

看来 key 是有验证码密钥加密得到的

SESSION 也正常赋值了,看来生成是没什么毛病,在看下验证是什么情况

Thinkphp5.0.11 验证码永远错误

调试下是怎么验证的

Thinkphp5.0.11 验证码永远错误

Thinkphp5.0.11 验证码永远错误

我去,加密使用 DolphinPHP.COM 解密竟然使用 ThinkPHP.CN !!能验证通过么。。

看来验证操作函数 captcha_check ,并没有将配置里的 key 重载,使用tp默认 ThinkPHP.CN

这下来研究下 captcha_check 函数

Thinkphp5.0.11 验证码永远错误

看完之后发现,使用这个函数还得自己将配置传给第三参数。而文档就那么一句…

Thinkphp5.0.11 验证码永远错误

看来用这个函数没出问题的一般都是没有自己定义 验证码密钥 seKey 的..

解决方式:

1、使用验证码验证功能时,传入验证码配置(有定义验证码密钥情况下)

2、手动同步两个 seKey 配置。(或验证码配置不要定义 seKey )

最后截上完美成功截图

Thinkphp5.0.11 验证码永远错误

希望对有遇到此坑的兄die节省时间。

转载于:https://my.oschina.net/18y/blog/1829090

Thinkphp5.0.11 验证码永远错误相关教程

  1. AD域验证
  2. 验证Java8后,字符串常量池在堆中
  3. CNN深度神经网络实现验证码识别
  4. 403,验证二叉搜索树
  5. vue使用云片滑块验证码
  6. 什么学习软件需要身份证验证_什么是两层身份验证为什么我需要它
  7. 类的加载过程
  8. Leetcode题98、验证二叉搜索树(Python题解)