文档章节

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

botkenni
 botkenni
发布于 2017/02/23 15:53
字数 373
阅读 35
收藏 1

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

使用步骤如下:

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

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

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

第一步,控制器:

在任意controller里面重写方法

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

第二步,表单模型:

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

  public $verifyCode;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
             ['verifyCode','required'],
            ['verifyCode','captcha']
        ];
    }

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

第三步,视图:

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

<?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()方法修改

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

public function attributeLabels()
{
    return [
        'username' => '用户名',
        //另一种写法
        'email' => Yii::t('common','Email'),
        'password' => '密码',
        'verifyCode' => '验证码',
    ];
}

© 著作权归作者所有

共有 人打赏支持
botkenni
粉丝 16
博文 405
码字总数 433796
作品 0
西城
程序员
Yii2.0 rules验证规则集合的详细介绍

我在学习Yii2的路上,学习笔记 required : 必须值验证属性 代码如下: email : 邮箱验证 代码如下: match : 正则验证 url : 网址 代码如下: captcha : 验证码 代码如下: safe : 安全 compare ...

botkenni
05/27
0
0
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
78
0
yii2 学习历程——添加验证码

1:在控制器中对验证码生成规则进行配置(默认长度为6位,自己感觉有点反人类了,这里直接使用4位) /** * @inheritdoc * 增加验证配置 */ public function actions() { return [ 'error' =>...

木木……Nick
2016/08/22
32
0
yii2增加验证码详细步骤

作者:白狼 出处:http://www.manks.top/article/yii2_captcha本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。...

白狼栈
2016/04/25
118
0
yii里的authenticate() 和CModel的validate() 的各自的用处是什么?

LoginForm里有一个 public function authenticate($attribute,$params)UserIdentity 里有一个 public function authenticate()Cmodel里有一个 public function validate($attributes=null, $......

plugin
2015/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部