本文實例講述了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框架中驗證碼的簡單使用方法示例