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 相关文章推荐
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
php合并js请求的例子
Nov 01 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
php实现数组重复数字统计实例
Sep 30 PHP
laravel中的fillable和guarded属性详解
Oct 23 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实现字符串首字母转换成大写的方法
2015/03/17 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
javascript读写json示例
2014/04/11 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
python套接字流重定向实例汇总
2016/03/03 Python
Python基于select实现的socket服务器
2016/04/13 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
法人委托书的范本格式
2014/09/11 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript