Yii2 如何在modules中添加验证码的方法


Posted in PHP onJune 19, 2017

最近玩了下Yii2的验证码部分,正常的逻辑都可以走通的,网上的例子也是没有问题的,关键有问题的部分是在module中使用的时候,分享给大家,往下看之前可以去看看正常情况下是如何使用的。

controller部分的代码,这里的跟网上的都类似

public function actions()
{
  return [
    'captcha' => [
      'class' => 'yii\captcha\CaptchaAction',
      'fixedVerifyCode' => null,
      'backColor' => 0x000000, //背景颜色
      'maxLength' => 6, //最大显示个数
      'minLength' => 5, //最少显示个数
      'padding' => 5, //间距
      'height' => 40, //高度
      'width' => 130, //宽度
      'foreColor' => 0xffffff, //字体颜色
      'offset' => 4, //设置字符偏移量 有效果
    ],
  ];
}

model 部分的代码【这里是需要注意的】

public function rules()
{
  return [
    ['username', 'required', 'message' => '登录账号不能为空'],
    ['password', 'required', 'message' => '登录密码不能为空'],
    ['verifyCode', 'required', 'message' => '验证码不能为空'],
    ['verifyCode', 'captcha', 'captchaAction' => 'admin/default/captcha', 'message' => '验证码输入错误'],
    ['rememberMe', 'boolean'],
    ['password', 'validatePassword'],
  ];
}

rules中的verifyCode,需要加一个captchaAction对应的值,不然会出现验证码验证不通过,而且验证码的的数字也不会变化,原因应该是默认使用了site/captcha导致的

view部分的代码【由于php跟html的混排导致我无法忍受页面样式的混乱排版,所以尽量将参数配置部分拿出来】

$captchaConfig = [
  'name' => 'captchaimg',
  'captchaAction' => ['/admin/default/captcha'],
  'template' => '<div class="form-group"><div>{image}</div></div>',
  'imageOptions' => [
    'id' => 'captchaimg',
    'title' => '换一个',
    'alt' => '换一个',
    'style' => 'cursor:pointer;margin-left:25px;',
  ],
];
<?=Captcha::widget($captchaConfig);?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 分页原理详解
Aug 21 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
PHP编码规范的深入探讨
Jun 06 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 #PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 #PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 #PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 #PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 #PHP
Laravel中log无法写入问题的解决
Jun 17 #PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 #PHP
You might like
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
详解YII关联查询
2016/01/10 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
强制设为首页代码
2006/06/19 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
python实现简单tftp(基于udp协议)
2018/07/30 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
乐山大佛导游词
2015/02/02 职场文书
MySQL分库分表详情
2021/09/25 MySQL
TS 类型兼容教程示例详解
2022/09/23 Javascript