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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
基于文本的搜索
Oct 09 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
PHP7 其他语言层面的修改
Mar 09 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 取得瑞年与平年的天数的代码
2009/08/10 PHP
重新认识php array_merge函数
2014/08/31 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
js静态方法与实例方法分析
2011/07/04 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
浅析VUE防抖与节流
2020/11/24 Vue.js
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
Python中的 enum 模块源码详析
2019/01/09 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
解决python 找不到module的问题
2020/02/12 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
仓库班组长岗位职责
2013/12/12 职场文书
国培教师自我鉴定
2014/02/12 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
员工辞职信范文大全
2015/05/12 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书