本文实例讲述了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中
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' => '
'options' => ['class' => 'form-control','placeholder'=>"验证码"],
'imageOptions'=>['alt'=>'点击换图','title'=>'点击换图', 'style'=>'cursor:pointer']
])->label(false) ?>
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。