国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

Yii使用Captcha驗證碼的方法

2024-05-04 23:41:35
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Yii使用Captcha驗證碼的方法,結合實例形式分析了Yii使用Captcha驗證碼的MVC三層具體實現技巧,需要的朋友可以參考下
 

本文實例講述了Yii使用Captcha驗證碼的方法。分享給大家供大家參考,具體如下:

詳細代碼可參考:yii自帶的示例代碼post項目,里面有一個contact表單用到了驗證碼.

1. Model:

將驗證碼加入UserLogin的一個屬性:

class UserLogin extends CFormModel{ public $username; public $password; public $rememberMe; public $verifyCode; public function rules() {  return array(   // username and password are required   array('username, password,verifyCode', 'required'),   // rememberMe needs to be a boolean   array('rememberMe', 'boolean'),   // password needs to be authenticated   array('password', 'authenticate'),   // verifyCode needs to be entered correctly   array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),  ); } /**  * Declares attribute labels.  */ public function attributeLabels() {  return array(   'rememberMe'=>Yii::t('user',"Remember me next time"),   'username'=>Yii::t('user',"username or email"),   'password'=>Yii::t('user',"password"),   'verifyCode'=>Yii::t('user','Verification Code'),  ); }}

2. Controller

在LoginController控制器加入映射動作CCaptchaAction

public function actions(){ return array(  // captcha action renders the CAPTCHA image displayed on the contact page  'captcha'=>array(   'class'=>'CCaptchaAction',   'backColor'=>0xf4f4f4,   'padding'=>0,   'height'=>30,   'maxLength'=>4,  ),  );}ublic function actionLogin(){ if (Yii::app()->user->isGuest) {  $model=new UserLogin;  // collect user input data  if(isset($_POST['UserLogin']))  {   $model->attributes=$_POST['UserLogin'];//在此核對驗證碼   if($this->createAction('captcha')->validate($model->verifyCode, false))   {    // validate user input and redirect to previous page if valid    if($model->validate()) {    //admin login only    if( Yii::app()->getModule('user')->isAdmin()==1 )    {    $this->lastViset();    if (strpos(Yii::app()->user->returnUrl,'/index.php')!==false)     $this->redirect(Yii::app()->controller->module->returnUrl);    else     $this->redirect(Yii::app()->user->returnUrl);    }else    {//if no admin when login out     $this->redirect(Yii::app()->controller->module->logoutUrl);    }   }   }else   {//提示錯誤    $model->addError('verifyCode','驗證碼不對');   }  }  // display the login form  $this->render('/user/login',array('model'=>$model)); } else  $this->redirect(Yii::app()->controller->module->returnUrl);}

在驗證用戶名密碼前,檢查驗證碼:

if($this->createAction('captcha')->validate($model->verifyCode, false)){

3. view

在視圖中顯示驗證碼圖片,輸入框

<?php $this->widget('CCaptcha'); ?>  <?php echo CHtml::activeTextField($model,'verifyCode',array('tabindex'=>1)); ?><img src="http://www.XXXX.net/uploads/123456.jpg" alt="">

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 即墨市| 林州市| 贡觉县| 洪洞县| 裕民县| 桑植县| 宁波市| 井研县| 敖汉旗| 顺昌县| 布尔津县| 雅安市| 泗水县| 金阳县| 新津县| 洛隆县| 莲花县| 河北省| 盐津县| 宁国市| 铜梁县| 庐江县| 林芝县| 甘谷县| 法库县| 揭东县| 曲靖市| 陵水| 二连浩特市| 大名县| 常德市| 金沙县| 浦城县| 巴楚县| 昆明市| 新晃| 诸城市| 思南县| 渭源县| 宜兴市| 兴国县|