Yii2框架實現登陸添加驗證碼功能示例
更新時間:2018年07月12日 15:15:41 作者:彌塵
這篇文章主要介紹了Yii2框架實現登陸添加驗證碼功能,結合實例形式分析了Yii2框架登陸添加驗證碼相關的設置、控制器及視圖操作技巧,需要的朋友可以參考下
本文實例講述了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優(yōu)秀開發(fā)框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
相關文章
使用pthreads實現真正的PHP多線程(需PHP5.3以上版本)
PHP 5.3 以上版本,使用pthreads PHP擴展,可以使PHP真正地支持多線程。多線程在處理重復性的循環(huán)任務,能夠大大縮短程序執(zhí)行時間2014-05-05
golang實現php里的serialize()和unserialize()序列和反序列方法詳解
這篇文章主要介紹了golang實現php里的serialize()和unserialize()序列和反序列方法詳解,需要的朋友可以參考下2018-10-10

