《PHP应用:Yii使用Captcha验证码的方法》要点:
本文介绍了PHP应用:Yii使用Captcha验证码的方法,希望对您有用。如果有疑问,可以联系我们。
相关主题:YII框架
本文实例讲述了Yii使用Captcha验证码的办法.分享给大家供大家参考,具体如下:PHP学习
详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码.PHP学习
1. Model:PHP学习
将验证码加入UserLogin的一个属性:PHP学习
- 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. ControllerPHP学习
在LoginController控制器加入映射动作CCaptchaActionPHP学习
- 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);
- }
在验证用户名暗码前,检查验证码:PHP学习
- if($this->createAction('captcha')->validate($model->verifyCode, false))
- {
3. viewPHP学习
在视图中显示验证码图片,输入框PHP学习
- <?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学习
《PHP应用:Yii使用Captcha验证码的方法》是否对您有启发,欢迎查看更多与《PHP应用:Yii使用Captcha验证码的方法》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7980.html