Yii使用Captcha验证码的方法,yiicaptcha验证码_PHP教程
Yii使用Captcha验证码的方法,yiicaptcha验证码
本文实例讲述了Yii使用Captcha验证码的方法。分享给大家供大家参考,具体如下:
详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码.
1. Model:
将验证码加入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', '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'=>1)); ?> <img src="/static/imghw/default1.png" data-src="http://www.XXXX.net/uploads/123456.jpg" class="lazy" alt="">
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
- yii用户注册表单验证实例
- PHP Yii框架之表单验证规则大全
- Yii框架form表单用法实例
- Yii不依赖Model的表单生成器用法实例
- yii框架表单模型使用及以数组形式提交表单数据示例
- Yii中实现处理前后台登录的新方法
- yii去掉必填项中星号的方法

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

谷歌浏览器不显示验证码图片怎么办?在使用谷歌浏览器登录网页有时候需要验证码验证。部分用户在使用图片验证码的时候发现谷歌浏览器无法正常显示图片的内容。这应该怎么办呢?下面小编带来谷歌浏览器验证码不显示处理方法介绍,希望对大家有所帮助! 方法介绍 1、进入软件,点击右上角的“更多”按钮,选择下方选项列表中的“设置”进入。 2、进入新界面后,点击左侧的“隐私设置和安全性”选项。 3、接着点击右侧中的“网站设置&rdquo

手机收不到验证码是网络问题、手机设置问题、手机运营商问题和个人设置问题导致的。详情介绍:1、网络问题,手机所处的网络环境不稳定或者信号弱,就有可能导致验证码无法及时送达;2、手机设置问题,不小心将手机的短信或语音功能关闭,或者将验证码的发送号码加入到黑名单中,从而导致验证码无法正常收到;3、手机运营商问题,手机运营商可能会出现故障或者维护,导致验证码无法及时送达等等。

虚拟号码可以接收验证码,只要注册时填写的手机号码符合规定,并且能够正常接通手机号,就可以收到短信验证码。不过,使用虚拟手机号需要注意,部分网站不支持虚拟手机号注册,因此需要选择正规的虚拟手机号服务商。

PHP图片处理案例:如何实现图片的验证码功能随着互联网的快速发展,验证码成为了保护网站安全的重要手段之一。验证码是一种通过图像识别技术来确定用户是否为真实用户的验证方式。本文将介绍如何使用PHP来实现图片的验证码功能,并附带代码示例。简介验证码是一张包含随机字符的图片,用户需要输入图片中的字符才能通过验证。实现验证码的主要过程包括生成随机字符、绘制字符到图片

随着互联网的发展和智能手机的普及,验证码登录功能被越来越多的网站和应用程序采用。验证码登录是一种通过输入正确的验证码来验证用户身份的登录方式,以提高安全性和防止恶意攻击。在PHP开发中,实现简单的验证码登录功能并不复杂,可以通过以下步骤来完成。创建数据库表首先,我们需要在数据库中创建一个用于存储验证码信息的表。表结构可以包含以下字段:id:自增主键phon

如何使用PHP创建验证码图片?验证码(CAPTCHA)是一种常用的验证用户是否为人而不是机器的方法。在网站上,我们经常会看到验证码图片,要求用户输入图片上显示的随机字符或数字,以完成登录、注册、评论等操作。本文将介绍如何使用PHP创建验证码图片,并提供具体的代码示例。一、PHPGD库要创建验证码图片,我们需要使用PHP的GD库。GD库是一个用于处理图像的扩

手机收到各种平台验证码可能是因为个人信息被盗用、手机号码被滥用或者手机号码被误填或误用。详细介绍:1、个人信息被盗用,黑客或者不法分子可能通过各种渠道获取到你的个人信息,然后利用这些信息在各种平台上注册账号;2、手机号码被滥用,有些不法分子会通过各种手段获取到大量的手机号码,然后利用这些手机号码进行各种欺诈活动;3、手机号码被误填或误用等等。

如何使用JavaScript实现验证码功能?随着网络的发展,验证码已经成为了网站和应用程序中不可或缺的安全机制之一。验证码(VerificationCode)是一种用于判断用户是否为人类而不是机器的技术。通过验证码,网站和应用程序可以防止垃圾信息提交、恶意攻击、机器人爬虫等问题。本文将介绍如何使用JavaScript实现验证码功能,并提供具体的代码
