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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
PHP脚本的10个技巧(3)
Oct 09 PHP
PHP4在Windows2000下的安装
Oct 09 PHP
PHP常用代码
Nov 23 PHP
如何使用PHP往windows中添加用户
Dec 06 PHP
在普通HTTP上安全地传输密码
Jul 21 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
PHP数组常用函数实例小结
Aug 20 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
PHP常量define和const的区别详解
May 18 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
JS重要知识点小结
2011/11/06 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
JS变量及其作用域
2017/03/29 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
初步讲解Python中的元组概念
2015/05/21 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
python tornado微信开发入门代码
2018/08/24 Python
python实现五子棋小程序
2019/06/18 Python
python super函数使用方法详解
2020/02/14 Python
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
syb养殖创业计划书
2014/01/09 职场文书
校长个人总结
2015/03/03 职场文书
建党伟业的观后感
2015/06/01 职场文书
小英雄雨来观后感
2015/06/09 职场文书
在校证明模板
2015/06/17 职场文书