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概述.
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
浅谈php自定义错误日志
Feb 13 PHP
PHP文件缓存类实现代码
Oct 26 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
项目中应用Redis+Php的场景
May 22 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
PHP编程风格规范分享
2014/01/15 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
React中的refs的使用教程
2018/02/13 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
思想专业自荐信范文
2013/12/25 职场文书
书香校园建设方案
2014/05/02 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS