前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2学习笔记(五):验证器captcha的使用

Yii2学习笔记(五):验证器captcha的使用

作者头像
botkenni
发布2022-01-10 10:37:27
1.1K0
发布2022-01-10 10:37:27
举报
文章被收录于专栏:IT码农

Yii2.0的自带的验证依赖于GD2或者ImageMagick扩展。

使用步骤如下:

重写yii\web\Controller::actions()方法,用ID"captcha"注册一个CaptchaAction类的action。

在表单模型里面添加一个属性,用来保存用户输入的验证码字符串;这个属性的验证器是"captcha"。

在视图里面,把yii\captcha\Captcha Widget插入到表单里面。

第一步,控制器:

在任意controller里面重写方法

代码语言:javascript
复制
/** * @inheritdoc */
    public function actions()
    {
        return [
            'captcha'=>[
                'class'=>'yii\captcha\CaptchaAction',
                'maxLength'=>5,
                'minLength'=>5,
                 'height' => 50,
                'width' => 80,//这里可以设置宽和高,但是如果视图中有style,就会覆盖此处的宽和高
            ]
        ];
    }

第二步,表单模型:

这里只给出验证码相关的部分。

代码语言:javascript
复制
  public $verifyCode;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
             ['verifyCode','required'],
            ['verifyCode','captcha']
        ];
    }

验证规则里面验证码的验证器是captcha。

第三步,视图:

用ActiveForm生成对应字段。其中field()中的verifyCode是模型中的成员变量

代码语言:javascript
复制
<?php $form=ActiveForm::begin();?>
<?= $form->field($searchModel, 'verifyCode', [
        'options' => ['class' => 'form-group form-group-lg'],
])->widget(Captcha::className(),[
       'template' => '<div class="row"><div class="col-md-3 col-sm-3 mr20">{image}</div><div class="col-md-3 col-sm-3 mr20">{input}</div></div>',
       'imageOptions' => ['alt' => '验证码','style'=>'cursor:pointe'],
] ) ?>


<?php ActiveForm::end();?>

验证码,生成和验证的整个流程就完成了。

运行结果如下:其中Verify Code是widget的名字,可以通过label()方法修改

也可以在注册提交的控制器修改

代码语言:javascript
复制
public function attributeLabels()
{
    return [
        'username' => '用户名',
        //另一种写法
        'email' => Yii::t('common','Email'),
        'password' => '密码',
        'verifyCode' => '验证码',
    ];
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/02/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档