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开发文件系统实例讲解
Oct 09 PHP
强烈推荐:php.ini中文版(1)
Oct 09 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
TP5框架安全机制实例分析
Apr 05 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
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
Javascript typeof 用法
2008/12/28 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
virtualenv介绍及简明教程
2020/06/23 Python
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
党员岗位承诺口号大全
2014/03/28 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
政协常委会议主持词
2015/07/03 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python