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

作者:弥尘 时间:2023-11-21 11:36:32 

本文实例讲述了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程序设计有所帮助。

来源:http://www.cnblogs.com/baby123/p/4837289.html

标签:Yii2框架,验证码
0
投稿

猜你喜欢

  • sql中的常用的字符串处理函数大全

    2024-01-19 21:37:41
  • python实现爬取图书封面

    2023-06-08 16:40:44
  • python字符串常规操作大全

    2021-04-11 17:20:36
  • php输出xml必须header的解决方法

    2023-09-11 20:00:16
  • 不是原型继承那么简单!prototype的深度探索

    2008-03-07 12:42:00
  • Golang 统计字符串中数字字母数量的实现方法

    2024-04-23 09:43:04
  • python虚拟环境virtualenv的安装与使用

    2023-07-01 00:23:00
  • python的语句结构你真的了解吗

    2022-08-11 23:05:39
  • python中字符串变二维数组的实例讲解

    2021-08-03 04:37:56
  • jquery实用技巧之输入框提示语句

    2024-04-22 12:49:10
  • JavaScript实现Ajax总结

    2024-05-06 10:08:28
  • javascript面向对象技术基础(二)

    2010-02-07 13:09:00
  • python 获取et和excel的版本号

    2022-05-03 09:24:51
  • Python WXPY实现微信监控报警功能的代码

    2021-05-15 02:07:20
  • Django Serializer HiddenField隐藏字段实例

    2022-10-29 02:39:07
  • Javascript: 为<input>设置readOnly属性问题,希望大家以后要小心

    2009-07-23 20:24:00
  • Python中BeautifuSoup库的用法使用详解

    2023-11-19 04:52:48
  • 经测试最好用的mysql密码忘记的解决方法

    2024-01-27 17:12:57
  • 利用python实现.dcm格式图像转为.jpg格式

    2021-08-28 04:16:35
  • Vue.js实战之使用Vuex + axios发送请求详解

    2023-07-02 17:03:48
  • asp之家 网络编程 m.aspxhome.com