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 相关文章推荐
最省空间的计数器
Oct 09 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
php文件上传的例子及参数详解
Dec 12 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
php微信支付接口开发程序
Aug 02 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
php回调函数处理数组操作示例
Apr 13 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
php教程之phpize使用方法
2014/02/12 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
跟我学习javascript的Date对象
2015/11/19 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
家长给小学生的评语
2014/01/30 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
中秋节活动总结
2014/08/29 职场文书
特岗教师个人总结
2015/02/10 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
客户付款通知书
2015/04/23 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
关于Python使用turtle库画任意图的问题
2022/04/01 Python
MySQL 语句执行顺序举例解析
2022/06/05 MySQL