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脚本的10个技巧(3)
Oct 09 PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP实现的浏览器检查类
Apr 11 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP创建对象的六种方式实例总结
Jun 27 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/11/03 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP调用其他文件中的类
2018/04/02 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JQuery球队选择实例
2015/05/18 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python实现宿舍管理系统
2019/11/22 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
学习雷锋倡议书
2014/04/15 职场文书
触电现场处置方案
2014/05/14 职场文书
大学生党性分析材料
2014/12/19 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
领导干部学习心得体会
2016/01/23 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书