Yii2框架实现登陆添加验证码功能示例

 更新时间:2018年07月12日 15:15:41   作者:弥尘  
这篇文章主要介绍了Yii2框架实现登陆添加验证码功能,结合实例形式分析了Yii2框架登陆添加验证码相关的设置、控制器及视图操作技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

相关文章

  • destoon调用discuz论坛中带图片帖子的实现方法

    destoon调用discuz论坛中带图片帖子的实现方法

    这篇文章主要介绍了destoon调用discuz论坛中带图片帖子的实现方法,是destoon开发中非常实用的一个技巧,需要的朋友可以参考下
    2014-08-08
  • YII CLinkPager分页类扩展增加显示共多少页

    YII CLinkPager分页类扩展增加显示共多少页

    yii的分页类CLinkPager默认是不支持显示共x页的,那么现在接的项目有这样的需求,怎么办呢?下面通过本文给大家介绍YII CLinkPager分页类扩展增加显示共多少页的实例代码,需要的朋友参考下吧
    2016-01-01
  • php 404错误页面实现代码

    php 404错误页面实现代码

    如果访问您站点的用户由于各种原因暂时出现无法访问页面的错误,如何给他一个友好的答复,并且你也知道发生了这个错误,看看下面这段程序,是用来定制404错误页面和发通知给网管。
    2009-06-06
  • smarty模板数学运算示例

    smarty模板数学运算示例

    这篇文章主要介绍了smarty模板数学运算用法,结合实例形式分析了Smarty模板实现基本数学运算的操作技巧,需要的朋友可以参考下
    2016-12-12
  • PHP的password_hash()使用实例

    PHP的password_hash()使用实例

    这篇文章主要介绍了PHP的password_hash()使用实例,需要的朋友可以参考下
    2014-03-03
  • 如何使用jQuery+PHP+MySQL来实现一个在线测试项目

    如何使用jQuery+PHP+MySQL来实现一个在线测试项目

    本文将结合实例给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。
    2015-04-04
  • PHP远程调试之XDEBUG

    PHP远程调试之XDEBUG

    开发的时候我都是使用XDebug在本地调试,但是最近加入一些项目中去,环境太复杂了,要在本地搭建一个开发环境真的太麻烦了,那么我们怎么使用xdebug来远程调试呢?下面通过本篇文章给大家介绍php xdebug远程调试方法,感兴趣的朋友一起看看吧
    2015-12-12
  • laravel Task Scheduling(任务调度)在windows下的使用详解

    laravel Task Scheduling(任务调度)在windows下的使用详解

    今天小编就为大家分享一篇laravel Task Scheduling(任务调度)在windows下的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php三维数组去重(示例代码)

    php三维数组去重(示例代码)

    这篇文章主要是对php三维数组去重的示例代码进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • PHP时间戳与日期之间转换的实例介绍

    PHP时间戳与日期之间转换的实例介绍

    本篇文章小编为大家介绍,PHP时间戳与日期之间转换的实例介绍。需要的朋友参考下
    2013-04-04

最新评论