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 相关文章推荐
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
js实现中文实时时钟
2020/01/15 Javascript
python实现字符串和日期相互转换的方法
2015/05/13 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
python代码中怎么换行
2020/06/17 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
Python文件操作的面试题
2013/06/22 面试题
文化与传播毕业生求职信
2014/03/09 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
百日安全生产活动总结
2014/07/05 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android