yii验证码的使用和验证过程,yii验证码验证过程_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了yii验证码的使用和验证过程,yii验证码验证过程_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3765字,纯文字阅读大概需要6分钟。
内容图文
![yii验证码的使用和验证过程,yii验证码验证过程_PHP教程](/upload/InfoBanner/zyjiaocheng/190/2f1d90055c2f4bb881cf73e8452c730d.jpg)
yii 验证码的使用和验证过程,yii验证码验证过程
如果要实现这个过程的话,需要几个步骤
第一步就是controller的操作
在要操作的控制器中添加如下代码:
public function actions(){ return array( // captcha action renders the CAPTCHA image displayed on the contact page 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, 'maxLength'=>'8', // 最多生成几个字符 'minLength'=>'7', // 最少生成几个字符 'height'=>'40', 'width'=>'230', ), ); } public function accessRules(){ return array( array('allow', 'actions'=>array('captcha'), 'users'=>array('*'), ), ); }
第二步就是view的操作
在要显示验证码的地方添加如下代码:
widget('CCaptcha',array( 'showRefreshButton'=>true, 'clickableImage'=>false, 'buttonLabel'=>'刷新验证码', 'imageOptions'=>array( 'alt'=>'点击换图', 'title'=>'点击换图', 'style'=>'cursor:pointer', 'padding'=>'10') )); ?>
第三步就是LoginForm的操作
<?php /** * LoginForm class. * LoginForm is the data structure for keeping * user login form data. It is used by the 'login' action of 'SiteController'. */ class LoginForm extends CFormModel { public $username; public $password; public $rememberMe; public $verifyCode; private $_identity; /** * Declares the validation rules. * The rules state that username and password are required, * and password needs to be authenticated. */ public function rules(){ return array( // username and password are required // array('username, password', 'required'), array('username','required','message'=>'登录帐号不能为空'), array('password','required','message'=>'密码不能为空'), array('verifyCode','required','message'=>'验证码不能为空'), array('verifyCode','captcha', 'on'=>'login','allowEmpty'=>!Yii::app()->admin->isGuest), // rememberMe needs to be a boolean array('rememberMe', 'boolean'), // password needs to be authenticated array('password', 'authenticate'), ); } /** * Declares attribute labels. */ public function attributeLabels() { return array( 'rememberMe'=>'下次记住我', 'verifyCode' =>'验证码' ); } /** * Authenticates the password. * This is the 'authenticate' validator as declared in rules(). */ public function authenticate($attribute,$params) { if(!$this->hasErrors()) { $this->_identity=new UserIdentity($this->username,$this->password); if(!$this->_identity->authenticate()) $this->addError('password','帐号或密码错误.'); } } public function validateVerifyCode($verifyCode){ if(strtolower($this->verifyCode) === strtolower($verifyCode)){ return true; }else{ $this->addError('verifyCode','验证码错误.'); } } /** * Logs in the user using the given username and password in the model. * @return boolean whether login is successful */ public function login(){ if($this->_identity===null){ $this->_identity=new UserIdentity($this->username,$this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE){ $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; }else{ return false; } } }
第四步,实现验证的过程,那么具体的查看我自己的写的一个方式,在第三部已经写好了
validateVerifyCode就是啦,可以在controller里面调用
我的调用如下:
public function actionLogin(){ $model=new LoginForm; if(isset($_POST['ajax']) && $_POST['ajax']==='login-form'){ echo CActiveForm::validate($model); Yii::app()->end(); } if(isset($_POST['LoginForm'])){ $model->attributes=$_POST['LoginForm']; // validate user input and redirect to the previous page if valid if($model->validate() && $model->validateVerifyCode($this->createAction('captcha')->getVerifyCode()) && $model->login()){ $this->redirect(CController::createUrl('default/index')); } } $this->render('login',array('model'=>$model)); }
http://www.bkjia.com/PHPjc/1072009.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1072009.htmlTechArticleyii 验证码的使用和验证过程,yii验证码验证过程 如果要实现这个过程的话,需要几个步骤 第一步就是controller的操作 在要操作的控制器中...
内容总结
以上是互联网集市为您收集整理的yii验证码的使用和验证过程,yii验证码验证过程_PHP教程全部内容,希望文章能够帮你解决yii验证码的使用和验证过程,yii验证码验证过程_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。