yii2自定义表单使用验证码

首先在控制器定义方法actions:

public function actions()
    {
        return [
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction', 
                'maxLength' => 4, //最大显示个数
                'minLength' => 4,

            ],
        ];
}

前台img标签直接应用
验证码即可正常显示。

在用jquery定义一个放到,每次进入页面就去请求刷新验证码。

$.get('urlManager->createUrl('site/captcha');?>?',{refresh:1},function(data){
   evaldata=eval(data);
   $(".codeimg").attr('src',evaldata.url);    
}); 

点击图片刷新验证码:

$(document).on('click','.codeimg',function(){
   $.get('urlManager->createUrl('site/captcha');?>',{refresh:1},function(data){
       evaldata=eval(data);
       $(".codeimg").attr('src',evaldata.url);    
   });

})

后台验证前台传来的验证码是否正确。

#$code传来的验证码
$result = $this->createAction('captcha')->validate($code, false);
if($result){
    echo '验证成功';
}else{
    echo '验证失败';
}

你可能感兴趣的:(yii笔记)