关于验证码一直验证错误的原因

来源:10-1 神奇的tp5验证码

慕粉0057536294

2017-05-18

相信有些人一直验证码错误,然后一直找不出原因,以下是我的一个一直错误的例子;


场景:我自己做了ajax验证“验证码”是否正确,然后提交数据给控制器判断登陆是否正确,在这一个步骤里,就一直提示说验证码错误;

一切原因都是Captcha.php验证码类中的$this->reset的问题

[120]  $this->reset && Session::delete($key, '');

我这边ajax验证之后,类中的代码判断是否与加密后的验证码是否一致,

一致就判断$this->reset是否为true,而从composer中加载回来的Captcha类默认就是验证“验证码”正确之后,将此验证码销毁。

至此,控制器中的方法“验证码判断”一直都是返回错的,登陆失败!

// 验证码判断
if(!captcha_check($data['verify_code']))
{
    $this->error('验证码错误login');
}

修改思路:

captcha_check()方法添加一个参数,判断此参数是否为true或者false,为true时,则验证时不进行销毁“验证码”,从而控制器中的方法验证则可以顺利通过判断是否正确,为false反之;(注意此参数默认为false)

当然,这种做法就比较局限,只能写死某个控制器中的方法此参数为true,安全性暂时未知;

或者其它朋友有更好的思路可以告诉我。

多谢!

写回答

1回答

singwa

2017-05-22

按老师的那个来做 没效果?

0
1
慕粉0057536294
按老师您那个来做的话,我登陆时,会一直判断说验证码错误,不给我登陆
2017-05-22
共1条回复

Thinkphp5.0仿百度糯米开发多商家电商平台

【毕设】BAT大牛亲授ThinkPHP 5.0,实战中学透新技能,应用于工作

2439 学习 · 1712 问题

查看课程