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(2)
Oct 09 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
php include和require的区别深入解析
Jun 17 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 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下清空字符串中的HTML标签的代码
2010/09/06 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
详解Python3中的Sequence type的使用
2015/08/01 Python
python数据结构之列表和元组的详解
2017/09/23 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python批量更改文件名的实现方法
2017/10/29 Python
Python3远程监控程序的实现方法
2019/07/15 Python
python os模块在系统管理中的应用
2020/06/22 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
心得体会的写法
2014/09/05 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
在校生证明
2015/06/17 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python