captcha2 验证码 php,Yii2增加验证码步骤详解
本来以为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' => '
',
]) ?>
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增加验证码步骤详解相关推荐
- mysql 获取当前整点_Oracle 生成未来三天的整点时间(步骤详解)
需求:X坐标轴时间都为整点时间,展示未来三天内的预测(x轴展示未来三天的整点时间),每3个小时一个刻度,横坐标共计24个刻度 步骤一:取当前时间 SELECT SYSDATE FROM DUAL 步骤 ...
- Eclipse编译运行Native代码步骤详解
Eclipse编译运行Native代码步骤详解 标签: android jni层 android jni步骤 android jni接口 转自: http://blog.csdn.net/ ...
- js购物车功能php,使用JS实现购物车功能步骤详解
这次给大家带来使用JS实现购物车功能步骤详解,使用JS实现购物车功能的注意事项有哪些,下面就是实战案例,一起来看一下. 我们肯定都很熟悉商品购物车这一功能,每当我们在某宝某东上购买商品的时候,看中了哪 ...
- 【机器学习】线性回归实战案例一:多元素情况下广告投放效果分析步骤详解
线性回归实战案例一:多元素情况下广告投放效果分析步骤详解 2 线性回归 2.1 案例一:多元素情况下广告投放效果分析 2.1.1 模块加载与绘图布局样式设置 2.1.2 加载数据和数据筛选 2.1.3 ...
- 3c认证是什么,3C认证的6个步骤详解
3C认证的6个步骤详解: 3C认证步骤1: 授权委托和申请办理(提早3个月搞好申请办理材料): 1.<产品描述表>:团队承担给予产品的基本上信息,包含原材料信息.制作工艺.经销商等. 3C ...
- 利用和讯博客赚钱步骤详解
利用和讯博客赚钱步骤详解 来自朋友邻居大唐 玩博客的时间也不短了,原来一直在博客天下做,现在搬来和讯了.感觉这里很好,准备坚持做下去.踏进和讯的大门,发现这里的朋友都在玩Google AdSense, ...
- 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解
疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- 计算机数控系统的数控程序输入方式,数控机床操作系统_数控机床操作流程与步骤详解...
描述 数控即数字控制(Numerical Control,简称NC).数控技术即NC技术,是指用数字化信息发出指令并实现自动控制的技术.计算机数控(Computerized Numerical Con ...
- 详细讲解php快速排序,PHP快速排序算法使用步骤详解
这次给大家带来PHP快速排序算法使用步骤详解,PHP快速排序算法的注意事项有哪些,下面就是实战案例,一起来看一下. 基本思想: 快速排序(Quicksort)是对冒泡排序的一种改进.他的基本思想是:通 ...
最新文章
- activiti自己定义流程之Spring整合activiti-modeler实例(七):任务列表展示
- bzoj1513【POI2006】Tet-Tetris 3D
- Apache JMeter 测试 HTTP接口
- python-object-twoxml-html_1
- 一个入门级的Java Applet
- 系统引导的过程一般包括如下几步: 【 】_20190317工控维修日记(西门子系统第二讲)...
- windows下手动安装composer并配置环境变量
- 新裝win7虚拟机设置记录-20180909
- 计算机网络实训室建设设备,网络综合布线实训室建设方案
- 网管培训之基础知识介绍
- 冲顶,百万答题助手改进(python)
- 计算机毕业设计 SSM+Vue房屋出租系统 房屋租赁合同信息管理系统 房屋租售管理系统Java Vue MySQL数据库 远程调试 代码讲解
- 基础架构:一条sql语句是如何执行的?
- JavaScript纯数字密码的密码复杂度简单校验
- 计算机应用基础在线作业3,《计算机应用基础》15春在线作业3
- WNMP(Windows + Nginx + PHP + MySQL) 安装
- java 运动的大球吃小球_大球吃小球
- 怎么注册b5服务器,CSGO-B5开放注册
- localhost 访问不跨域 但 127.0.0.1 访问跨域,你知道为什么吗
- Android检测其他应用是否安装
热门文章
- c mysql命令_最基本的mysql命令
- php中文字怎么上下居中,CSS怎么设置垂直居中?
- android 用户中心布局,android用户中心头像选择功能的方法实现-Go语言中文社区
- 如何提取html的文本,如何从html标签之间提取文本?
- python重复输入字符串a三次_8道Python基础面试练习题
- fragment photoshop_史上最接地气的Photoshop?谈PS 2021的黑科技 - Adobe
- C++socket编程(三):3.1 TCP/IP协议特点
- MySQL从安装改密码到navicate远程连接,以及修改存储路径
- html表格的系列代码,HTML系列(八):表格(示例代码)
- ncl 添加点shp文件_基于Arcgis绘制采样点地图