本来以为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' => '

{image}
{input}

',

]) ?>

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、看效果就好了。

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

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

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

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

captcha2 验证码 php,Yii2增加验证码步骤详解相关推荐

  1. mysql 获取当前整点_Oracle 生成未来三天的整点时间(步骤详解)

    需求:X坐标轴时间都为整点时间,展示未来三天内的预测(x轴展示未来三天的整点时间),每3个小时一个刻度,横坐标共计24个刻度 步骤一:取当前时间 SELECT SYSDATE FROM DUAL 步骤 ...

  2. Eclipse编译运行Native代码步骤详解

    Eclipse编译运行Native代码步骤详解 标签: android jni层   android jni步骤   android jni接口   转自: http://blog.csdn.net/ ...

  3. js购物车功能php,使用JS实现购物车功能步骤详解

    这次给大家带来使用JS实现购物车功能步骤详解,使用JS实现购物车功能的注意事项有哪些,下面就是实战案例,一起来看一下. 我们肯定都很熟悉商品购物车这一功能,每当我们在某宝某东上购买商品的时候,看中了哪 ...

  4. 【机器学习】线性回归实战案例一:多元素情况下广告投放效果分析步骤详解

    线性回归实战案例一:多元素情况下广告投放效果分析步骤详解 2 线性回归 2.1 案例一:多元素情况下广告投放效果分析 2.1.1 模块加载与绘图布局样式设置 2.1.2 加载数据和数据筛选 2.1.3 ...

  5. 3c认证是什么,3C认证的6个步骤详解

    3C认证的6个步骤详解: 3C认证步骤1: 授权委托和申请办理(提早3个月搞好申请办理材料): 1.<产品描述表>:团队承担给予产品的基本上信息,包含原材料信息.制作工艺.经销商等. 3C ...

  6. 利用和讯博客赚钱步骤详解

    利用和讯博客赚钱步骤详解 来自朋友邻居大唐 玩博客的时间也不短了,原来一直在博客天下做,现在搬来和讯了.感觉这里很好,准备坚持做下去.踏进和讯的大门,发现这里的朋友都在玩Google AdSense, ...

  7. 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解

    疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...

  8. 计算机数控系统的数控程序输入方式,数控机床操作系统_数控机床操作流程与步骤详解...

    描述 数控即数字控制(Numerical Control,简称NC).数控技术即NC技术,是指用数字化信息发出指令并实现自动控制的技术.计算机数控(Computerized Numerical Con ...

  9. 详细讲解php快速排序,PHP快速排序算法使用步骤详解

    这次给大家带来PHP快速排序算法使用步骤详解,PHP快速排序算法的注意事项有哪些,下面就是实战案例,一起来看一下. 基本思想: 快速排序(Quicksort)是对冒泡排序的一种改进.他的基本思想是:通 ...

最新文章

  1. activiti自己定义流程之Spring整合activiti-modeler实例(七):任务列表展示
  2. bzoj1513【POI2006】Tet-Tetris 3D
  3. Apache JMeter 测试 HTTP接口
  4. python-object-twoxml-html_1
  5. 一个入门级的Java Applet
  6. 系统引导的过程一般包括如下几步: 【 】_20190317工控维修日记(西门子系统第二讲)...
  7. windows下手动安装composer并配置环境变量
  8. 新裝win7虚拟机设置记录-20180909
  9. 计算机网络实训室建设设备,网络综合布线实训室建设方案
  10. 网管培训之基础知识介绍
  11. 冲顶,百万答题助手改进(python)
  12. 计算机毕业设计 SSM+Vue房屋出租系统 房屋租赁合同信息管理系统 房屋租售管理系统Java Vue MySQL数据库 远程调试 代码讲解
  13. 基础架构:一条sql语句是如何执行的?
  14. JavaScript纯数字密码的密码复杂度简单校验
  15. 计算机应用基础在线作业3,《计算机应用基础》15春在线作业3
  16. WNMP(Windows + Nginx + PHP + MySQL) 安装
  17. java 运动的大球吃小球_大球吃小球
  18. 怎么注册b5服务器,CSGO-B5开放注册
  19. localhost 访问不跨域 但 127.0.0.1 访问跨域,你知道为什么吗
  20. Android检测其他应用是否安装

热门文章

  1. c mysql命令_最基本的mysql命令
  2. php中文字怎么上下居中,CSS怎么设置垂直居中?
  3. android 用户中心布局,android用户中心头像选择功能的方法实现-Go语言中文社区
  4. 如何提取html的文本,如何从html标签之间提取文本?
  5. python重复输入字符串a三次_8道Python基础面试练习题
  6. fragment photoshop_史上最接地气的Photoshop?谈PS 2021的黑科技 - Adobe
  7. C++socket编程(三):3.1 TCP/IP协议特点
  8. MySQL从安装改密码到navicate远程连接,以及修改存储路径
  9. html表格的系列代码,HTML系列(八):表格(示例代码)
  10. ncl 添加点shp文件_基于Arcgis绘制采样点地图