后端开发|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)); ?>