本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:- Yii2 如何在modules中添加验证码的方法
- Yii2下点击验证码的切换实例代码
- Yii2简单实现给表单添加验证码的方法
- Yii2增加验证码步骤详解
- yii2中添加验证码的实现方法
- Yii1.0 不同页面多个验证码的使用实现
- Yii 2.0自带的验证码使用经验分享
- Yii输入正确验证码却验证失败的解决方法
- Yii框架实现的验证码、登录及退出功能示例
- Yii使用Captcha验证码的方法
- yii实现创建验证码实例解析
- YII2框架中验证码的简单使用方法示例