当前位置:首页 > PHP > Yii2 > 正文内容

Yii2使用自带验证码

佳航网络工作室2年前 (2024-01-23)Yii21176

** 分别MVC 三部分来看怎么实现yii2自带的验证码。 **

** Model **

class LoginForm extends Model
{
  public $username;
  public $password;
  public $rememberMe = true;
  public $verify;
  private $_user;
  /**
   * @inheritdoc
   */
  public function rules()
  {
    return [
      // username and password are both required
      [['username', 'password'], 'required'],
      // rememberMe must be a boolean value
      ['rememberMe', 'boolean'],
      // password is validated by validatePassword()
      ['password', 'validatePassword'],
      ['verify', 'captcha', 'captchaAction'=>'site/captcha'],
    ];
  }
}

可以看到只要在rules中添加

['verify', 'captcha', 'captchaAction'=>'site/captcha'],

** View **

$form->field($model,'verify')->widget(Captcha::className(),[
      'captchaAction'=>'site/captcha',
      'imageOptions'=>[
        'alt'=>'刷新',
        'title'=>'刷新',
        'style'=>'cursor:pointer; display:inline'
      ],
      'template' => '<div class="col-lg-7" style="padding: 0;">{input}</div><div class="col-lg-5" style="padding: 0; text-align: right">{image}</div><div class="clearfix"></div>',
      'options' => [
        'placeholder' => '输入验证码',
        'class' => 'form-control'
      ]
    ])->label(false);

** Controller **

  /**
   * @inheritdoc
   */
  public function actions()
  {
    return [
      'captcha' => [
        'class' => 'yii\captcha\CaptchaAction',
        'backColor'=>0xffffff,//背景颜色
        'maxLength' => 6, //最大显示个数
        'minLength' => 5,//最少显示个数
        'padding' => 5,//间距
        'height'=>34,//高度
        'width' => 120,  //宽度
        'foreColor'=>0x000000,     //字体颜色
        'offset'=>4,        //设置字符偏移量 有效果
      ],
    ];
  }

在控制器中加入公用的captcha,这是一个action


** 注意**

整个配置其实是一个很简单的过程,yii2已经帮我实现好了actionCaptcha, 这个action中包含了验证码生成,图片生成,验证码验证的操作,我们只需要在actions中引入这个actionCaptcha, 同时在Model的验证码验证中,将验证方法指向该控制器下面的captcha,同时在View中注意验证提交的地址即可。

整个处理流程类似处理普通的action,只是actionCaptcha 集成了较多功能的可用其他controller而已。



————————————————

版权声明:本文为CSDN博主「leo_howl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u013050330/article/details/102988324



扫描二维码推送至手机访问。

版权声明:本文由佳航网络发布,如需转载请注明出处。

本文链接:https://jiahang.work/?id=20

标签: Yii2
分享给朋友:

“Yii2使用自带验证码” 的相关文章

【从零开始搭建Yii2后台管理系统】三、搭建数据库,实现后台系统登录

【从零开始搭建Yii2后台管理系统】三、搭建数据库,实现后台系统登录

在上一篇文章中,已实现网站的初步访问,下一步进行网站的完善和改造。1.创建数据库CREATE DATABASE IF NOT EXISTS `moonadmin` DEFAULT CHARACTER SET u...

【从零开始搭建Yii2后台管理系统】四、引入前台UI文件,实现界面的美化

在上一篇文章中,我们已经实现了网站后台的管理员账号登录,下一步我们引入UI文件,美化界面主题。...

Yii2 中如何彻底禁用掉自带的 Yii、JQuery 和 Bootstrap 脚本 [ 2.0 版本 ]

▪ 环境基于 Yii2 高级模板▪ 前言默认情况下,Yii2 会自动加载 Yii、JQuery 和 Bootstrap 等脚本和样式,但有时项目中可能并不需要这些库,或者使用其他版本;下面介绍如何去掉这些库脚本和样式。▪ 去除 Yii.js 相关脚本编辑 frontend\asset\AppAsse...

Yii2.0 多语言设置(高级版配置方法) [ 2.0 版本 ]

Yii2.0 多语言设置(高级版配置方法) [ 2.0 版本 ]

1.设置默认语言:在main.php配置文件加上:'language'=>'zh_CN';2.多语言切换 (我这边是在site控制器里面操作的所以用的'/site/language')html代码 :<a href="&...

Yii2验证码如何脱离ActiveForm单独使用

官方提供了验证码模块(yii\captcha\CaptchaAction),但要结合ActiveForm一起用,封装得有点过度,现在有一种更加简单的用法。1.在你的controller里引用CaptchaAction://WebController class WebController...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。