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截取中文字符串的问题
Jul 12 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
php文件缓存类用法实例分析
Apr 22 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 PHP
PHP时间函数使用详解
Mar 21 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字符串 ==比较运算符的副作用
2009/10/21 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
javascript instanceof 内部机制探析
2010/10/15 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
vue-router单页面路由
2017/06/17 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
python简单商城购物车实例代码
2018/03/15 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
python实现加密的方式总结
2020/01/19 Python
如何在django中运行scrapy框架
2020/04/22 Python
pandas数据处理之绘图的实现
2020/06/15 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
python装饰器代码深入讲解
2021/03/01 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
财务管理职业生涯规划范文
2013/12/27 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
放假通知范文
2015/04/14 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
nginx 添加http_stub_status_module模块
2022/05/25 Servers