• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Yii使用Captcha验证码的方法

php 搞代码 4年前 (2022-01-23) 23次浏览 已收录 0个评论

本文实例讲述了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   {//提示错误    $<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>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

在视图中显示验证码图片,输入框

widget('CCaptcha'); ?>  1)); ?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

以上就介绍了Yii使用Captcha验证码的方法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Yii使用Captcha验证码的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址