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 23 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
php反射类ReflectionClass用法分析
May 12 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
详解JS数值Number类型
2018/02/07 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
python flask实现分页的示例代码
2018/08/02 Python
Python读取stdin方法实例
2019/05/24 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
创业计划书中要认真思考的问题
2013/12/28 职场文书
打架检讨书800字
2014/01/10 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL