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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
php 获取全局变量的代码
Apr 21 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
php接口实现拖拽排序功能
Apr 23 PHP
实例解析php的数据类型
Oct 24 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 smarty模版引擎中的缓存应用
2009/12/02 PHP
php的ajax简单实例
2014/02/27 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
javascript实现拖放效果
2015/12/16 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Python实现程序的单一实例用法分析
2015/06/03 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
教师业务学习制度
2014/01/25 职场文书
给校长的建议书500字
2014/05/15 职场文书
文明班集体申报材料
2014/05/23 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
公司借条范本
2015/05/25 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python