Yii2框架实现登陆添加验证码功能示例


Posted in PHP onJuly 12, 2018

本文实例讲述了Yii2框架实现登陆添加验证码功能。分享给大家供大家参考,具体如下:

models中

LoginForm.php

public $verifyCode;
public function rules()
{
   return [
      ……
      ['verifyCode', 'captcha', 'on' => 'login'], //验证码
   ];
}
public function scenarios() {
    $scenarios = parent::scenarios();
    $scenarios['login'] = ['username', 'password', 'rememberMe', 'verifyCode'];
    return $scenarios;
}

controller中

public function actions()
{
    return [
      'error' => [
        'class' => 'yii\web\ErrorAction',
      ],
      'captcha' => [
        'class' => 'yii\captcha\CaptchaAction',
        'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
        'width' => 100,
        'height' => 34,
        'padding' => 0,
        'minLength' => 4,
        'maxLength' => 4,
      ],
    ];
}
public function actionLogin()
{
    if (!\Yii::$app->user->isGuest) {
      return $this->goHome();
    }
    $model = new LoginForm(['scenario' => 'login']);
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
      return $this->goBack();
    } else {
      return $this->render('login', [
        'model' => $model,
      ]);
    }
}

view中

<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\captcha\Captcha;
?>
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
          'template' => '<div class="input-group input-group-lg col-md-8"><span class="input-group-addon"><i class="glyphicon glyphicon-eye-open red"></i></span>{input}<div class="input-group-addon" style="padding:5px;">{image}</div></div>',
          'options' => ['class' => 'form-control','placeholder'=>"验证码"],
          'imageOptions'=>['alt'=>'点击换图','title'=>'点击换图', 'style'=>'cursor:pointer']
 ])->label(false) ?>
<?php ActiveForm::end(); ?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
php实现分页工具类分享
Jan 09 PHP
PHP实现多图片上传类实例
Jul 26 PHP
PHP使用memcache缓存技术提高响应速度的方法
Dec 26 PHP
php去除二维数组的重复项方法
Nov 03 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
php微信开发之图片回复功能
Jun 14 PHP
php对微信支付回调处理的方法
Aug 23 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 PHP
Yii框架日志记录Logging操作示例
Jul 12 #PHP
php unlink()函数使用教程
Jul 12 #PHP
总结PHP代码规范、流程规范、git规范
Jun 18 #PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 #PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 #PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 #PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 #PHP
You might like
屏蔽浏览器缓存另类方法
2006/10/09 PHP
php session处理的定制
2009/03/16 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP无限分类(树形类)
2013/09/28 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
浅谈Vue.js
2017/03/02 Javascript
深入研究React中setState源码
2017/11/17 Javascript
vue实现文件上传功能
2018/08/13 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
django自定义模板标签过程解析
2019/12/14 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
项目负责人任命书
2014/06/04 职场文书
英语课外活动总结
2014/08/27 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
环保建议书作文400字
2015/09/14 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Python中time标准库的使用教程
2022/04/13 Python