关于验证码一直验证错误的原因
来源: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
按老师的那个来做 没效果?
012017-05-22
相似问题