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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP防注入安全代码
Apr 09 PHP
mysql limit查询优化分析
Nov 12 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
php的ZipArchive类用法实例
Oct 20 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 PHP
PHP集成环境XAMPP的安装与配置
Nov 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
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python zip文件 压缩
2008/12/24 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
Joules美国官网:出色的英国风格
2017/10/30 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
合作协议书范本
2014/04/17 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
教师自查自纠材料
2014/10/14 职场文书
业务内勤岗位职责
2015/04/13 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
Ruby处理YAML和json数据
2022/04/18 Ruby
Redis keys命令的具体使用
2022/06/05 Redis
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android