加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Yii输入正确验证码却验证失败的办理要领

发布时间:2021-01-21 20:42:05 所属栏目:编程 来源:网络整理
导读:媒介 最近在做一个需求时,发明输入正确验证码,可是都提醒验证码错误 最后追踪代码发明,假如 Model 在 save 前,单独做了 validate 验证,则在验证竣事后,会从头天生验证码 然后在我们 Model save 时,也会举办 validate 验证,验证时,验证码已经从头生

媒介

最近在做一个需求时,发明输入正确验证码,可是都提醒验证码错误

最后追踪代码发明,假如 Model 在 save 前,单独做了 validate 验证,则在验证竣事后,会从头天生验证码

然后在我们 Model save 时,也会举办 validate 验证,验证时,验证码已经从头天生了,以是会匹配不上

$model = new Test();

$model->validate();

$model->save();

$model = new Test();
// 把必要验证的 attribute 放进去,解除验证码字段
$model->validate(array('test1','test2'));

$model->save()

我们可以看framework/web/widgets/captcha/CCaptchaAction.php 可以很轻易就发明题目了

class CaptchaAction extends CCaptchaAction
{
public function validate($input,$caseSensitive)
{
$code = $this->getVerifyCode();
$valid = $caseSensitive ? ($input === $code) : !strcasecmp($input,$code);
$session = Yii::app()->session;
$session->open();
$name = $this->getSessionKey() . 'count';
if (!Yii::app()->request->isAjaxRequest) {
$session[$name] = $session[$name] + 1;
}

// 这里会从头天生
if ($session[$name] > $this->testLimit && $this->testLimit > 0) {
$this->getVerifyCode(true);
}
return $valid;
}
}

总结

以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变能带来必然的辅佐,假若有疑问各人可以留言交换,感谢各人对编程之家的支持。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读