Yii2增加验证码步骤详解


Posted in PHP onApril 25, 2016

本来以为yii2框架验证码这块很全面,尝试百度google了一下,大多数教程写的零零散散不全面,想着自己写一份带有完整步骤的验证码教程。

我们假设site/login 表单登录需要增加验证码。

1、siteController控制器的actions方法增加captcha设置

public function actions() { 
return [ 
'captcha' => [ 
'class' => 'yii\captcha\CaptchaAction', 
'maxLength' => 4, 
'minLength' => 4 
], 
]; 
}

上面我们简单设置了验证码的位数,有小伙伴好奇都有哪些配置项,这个你可以查看文件 vendor\yiisoft\yii2\captcha,包括验证码背景色,字体文件等设置都可以在这里找到。

2、siteController继续配置。

public function behaviors() { 
return [ 
'access' => [ 
'class' => AccessControl::className(), 
'rules' => [ 
[ 
'actions' => ['login', 'error', 'captcha'], 
'allow' => true, 
], 
], 
]; 
}

为access rules的actions增加captcha方法可访问。

3、我们看看view层,增加验证码input。

use yii\captcha\Captcha; 
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', 
]) ?>

4、这样还不行,我们还需要增加验证码的验证规则

我们这里用到的是LoginForm,因此修改LoginForm文件

class LoginForm extends Model { 
//...... public $verifyCode; 
public function rules() { 
return [ 
//...... 
['verifyCode', 'captcha'], 
]; 
} 
public function attributeLabels() { 
return [
'verifyCode' => '', //验证码的名称,根据个人喜好设定 
]; 
} 
} 
//定义了verifyCode属性 
//rules规则添加了验证 
//label中定义了其显示名称

5、到第四步基本上配置好验证码就会正常显示了。如果你的后台设定了rbac权限控制,恐怕你仍然需要在config内为as accss增加/site/captcha可访问。

6、看效果就好了。

Yii2增加验证码步骤详解

7、有同学问为啥页面刷新验证码不跟着刷新,我个人觉得刷不刷新不重要,当你输错验证码页面刷新的时候验证码才会刷新。如果你非要刷新页面验证码跟着刷新,尝试一种简单的方法实现。

$('验证码对象').click();

即在页面刷新的时候重新点击一次验证码进行强制刷新。

以上所述是小编给大家介绍的Yii2增加验证码步骤,希望对大家有所帮助!

PHP 相关文章推荐
php生成随机数或者字符串的代码
Sep 05 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
destoon各类调用汇总
Jun 20 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
Yii rules常用规则示例
Mar 15 PHP
php中序列化与反序列化详解
Feb 13 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
php基于协程实现异步的方法分析
Jul 17 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 PHP
如何在PHP中使用数组
Jun 09 PHP
Yii实现显示静态页的方法
Apr 25 #PHP
mysql_escape_string()函数用法分析
Apr 25 #PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 #PHP
PHP引用的调用方法分析
Apr 25 #PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 #PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 #PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 #PHP
You might like
php+mysql 实现身份验证代码
2010/03/24 PHP
php-fpm配置详解
2014/02/12 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
pytorch实现线性拟合方式
2020/01/15 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Python如何绘制日历图和热力图
2020/08/07 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
日期和时间问题
2015/01/04 面试题
Java如何调用外部Exe程序
2015/07/04 面试题
函授自我鉴定
2013/11/06 职场文书
学生党员思想汇报
2013/12/28 职场文书
理财投资建议书
2014/03/12 职场文书
学校党支部承诺书
2015/04/30 职场文书
百年孤独读书笔记
2015/06/29 职场文书
教师节大会主持词
2015/07/06 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android