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一些服务器端特性的配置加强php的安全
Oct 09 PHP
PHP编程中八种常见的文件操作方式
Nov 19 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
PHP 命名空间实例说明
Jan 27 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
PHP实现简单注册登录系统
Dec 28 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
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
PHP中的Memcache详解
2014/04/05 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
用JS实现选项卡
2020/03/23 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python简明入门教程
2015/08/04 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
团支书竞选演讲稿
2014/04/28 职场文书
师德演讲稿范文
2014/05/06 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Oracle 多表查询基本语法实例
2022/04/18 Oracle