文档章节

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

botkenni
 botkenni
发布于 2017/02/23 15:53
字数 373
阅读 32
收藏 1
点赞 0
评论 0

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
粉丝 15
博文 336
码字总数 378358
作品 0
西城
程序员
Yii2.0 rules验证规则集合的详细介绍

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

botkenni ⋅ 05/27 ⋅ 0

技术积累笔记概要

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

风清扬-深圳 ⋅ 2015/11/24 ⋅ 0

yii2增加验证码详细步骤

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

白狼栈 ⋅ 2016/04/25 ⋅ 0

yii2 学习历程——添加验证码

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

木木……Nick ⋅ 2016/08/22 ⋅ 0

Yii 2 —— 字段校验

1.1 字段校验 1.1.1 简介 开发Web应用有一个很重要的原则,就是不要相信任何输入的数据,在使用之前必须要进行有效性检查,否则很有可能会引发各种安全性问题。Yii 2当然也不会忽略这个问题,...

tywali ⋅ 2016/11/22 ⋅ 0

Yii2中验证码的使用

1.控制器中 public function actions() { return [ 'captcha' => [ 'class' => 'yiicaptchaCaptchaAction', 'fixedVerifyCode' => YIIENVTEST ? 'testme' : null, ], ]; } 2.模型中 要有一个......

魏邪乎 ⋅ 2015/08/24 ⋅ 0

YII2 刷新网页时验证码不刷新

第一种方法(失败): 修改 fixedVerifyCode 值,确实可以刷新页面的时候改变验证码, 但是 Session 里面没有值,没有值,没有值... public function actions() 1, 第二种方法(成功),网上...

红石头 ⋅ 2015/12/31 ⋅ 1

dungang/yii2-luosimao-captcha

yii2-luosimao-captcha Luosimao 创新开发的人机验证,免去了复杂的输入过程,具有更加优秀的操作体验,更加美观的设计,可更好地融入到您的网站中 官网地址:https://luosimao.com/service/...

dungang ⋅ 2017/09/18 ⋅ 0

YII2 刷新网页时验证码不刷新

第一种方法(失败): public function actions() 1, 第二种方法(失败):重写 yiicaptchaCaptchaAction 里面的run方法, 还是出现和第一种方法一样的问题 session 里面没值...

红石头 ⋅ 2015/12/31 ⋅ 0

Yii2如何实现用户登陆

这两天空的时候,看了下Yii2,然后按照官方教程,安装了Yii2基础版。最开始的问题,无非就是注册登陆等功能了,果然,Yii2基础版并不像高级版一样,可以直接导入创建好的数据库,只有的静态登...

卖小女孩的小火柴 ⋅ 2015/04/11 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 19分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 31分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 今天 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部