900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Yii使用Captcha验证码办法【PHP】

Yii使用Captcha验证码办法【PHP】

时间:2021-11-10 03:32:30

相关推荐

Yii使用Captcha验证码办法【PHP】

后端开发|php教程

Yii,Captcha,验证码,Yii验证码

后端开发-php教程

金融官网源码,进ubuntu系统黑屏,tomcat日志文件的目录,爬虫巨蜥,php代码写在哪,黄石百度seo关键词优化lzw

详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码.

traincascade源码解析,vscode文件管理快捷键,ubuntu商店联网,tomcat部署静态站点,车险爬虫,php高级工程师招聘,列举五种SEO赚钱的方式lzw

1. Model:

html js表白源码下载,ubuntu vim配置网卡,什么是谷歌爬虫,php7.1升级到8.0,德州seo平台lzw

将验证码加入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, equired), // rememberMe needs to be a boolean array( ememberMe, oolean), // 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( ememberMe=>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, ackColor=>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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。