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 相关文章推荐
main.php
Dec 09 PHP
php下MYSQL limit的优化
Jan 10 PHP
PHP 函数语法介绍一
Jun 14 PHP
php学习之 数组声明
Jun 09 PHP
php提示undefined index的几种解决方法
May 21 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
初识php MVC
Sep 10 PHP
php删除数组中重复元素的方法
Dec 22 PHP
PHP类的特性实例分析
Sep 28 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
PHP智能识别收货地址信息实例
Jan 05 PHP
PHP PDOStatement::rowCount讲解
Feb 01 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
PHP技术开发技巧分享
2010/03/23 PHP
php实现简单加入购物车功能
2017/03/07 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python将视频转换为全字符视频
2019/04/26 Python
python常用函数与用法示例
2019/07/02 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Python读取csv文件实例解析
2019/12/30 Python
怎样创建、运行java程序
2014/08/01 面试题
建筑个人求职信范文
2014/01/25 职场文书
总经理助理职责
2014/02/04 职场文书
初中英语演讲稿
2014/04/29 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
公开承诺书格式
2014/05/21 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers