php教程

超轻量级php框架startmvc

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

更新时间:2020-03-28 17:43:26 作者:startmvc
本文实例讲述了Yii2框架实现登陆添加验证码功能。分享给大家供大家参考,具体如下:model

本文实例讲述了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(); ?>

Yii2框架 登陆 验证码