首页 > 编程 > PHP > 正文

Yii使用Captcha验证码的方法

2020-03-22 17:58:31
字体:
来源:转载
供稿:网友
本文实例讲述了Yii使用Captcha验证码的方法。分享给大家供大家参考,具体如下: 详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码. 1. Model: 将验证码加入UserLogin的一个属性: html' target='_blank'>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'= img src="http://www.XXXX.net/uploads/123456.jpg" alt="" 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表