YII 验证码

验证码类

Java代码  

  1. <?php  
  2.   
  3. class Captcha extends CCaptchaAction  
  4. {  
  5.     public function run()  
  6.     {  
  7.         if (isset($_GET[self::REFRESH_GET_VAR])) // AJAX request for regenerating code  
  8.         {  
  9.             $code = $this->getVerifyCode(true);  
  10.             echo CJSON::encode(array(  
  11.                 'hash1' => $this->generateValidationHash($code),  
  12.                 'hash2' => $this->generateValidationHash(strtolower($code)),  
  13.                 // we add a random 'v' parameter so that FireFox can refresh the image  
  14.                 // when src attribute of image tag is changed  
  15.                 'url' => $this->getController()->createUrl($this->getId(), array('v' => uniqid())),  
  16.             ));  
  17.         } else{  
  18.             $this->renderImage($this->getVerifyCode(true)); //刷新页面时会调用这个,问题就出现在这,他调用  
  19.         }  
  20.         Yii::app()->end();  
  21.     }  
  22. }  

 controller

Java代码  

  1. public function actions()  
  2. {  
  3.     return array(  
  4.         // captcha action renders the CAPTCHA image displayed on the contact page  
  5.         'captcha'=>array(  
  6.             'class'=>'Captcha',  
  7.             'maxLength'=>4,  
  8.             'minLength'=>4,  
  9.             'width' => 100  
  10.         ),  
  11.     );  
  12. }  

 html

Java代码  

  1. <?php $this->widget('CCaptcha', array('showRefreshButton' => false, 'clickableImage' => true, 'imageOptions' => array('title' => '点击换图', 'style' => 'cursor:pointer;width: 110px; height: 35px;'))); ?>                         
时间: 2024-09-10 12:33:36

YII 验证码的相关文章

yii实现创建验证码实例解析_php实例

本文以实例形式讲述了yii创建验证码的方法,具体步骤如下所示: 一.在SiteController action()下添加如下代码: return array( // captcha action renders the CAPTCHA image displayed on the contact page 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, ), // page action rende

Yii使用Captcha验证码的方法_php实例

本文实例讲述了Yii使用Captcha验证码的方法.分享给大家供大家参考,具体如下: 详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码. 1. Model: 将验证码加入UserLogin的一个属性: class UserLogin extends CFormModel { public $username; public $password; public $rememberMe; public $verifyCode; public function

PHP开发框架Yii Framework教程(21) UI 组件 自定义Captcha示例

Yii内置的Captcha基本上可以满足大部分需求,如果你对验证码有特殊要求,你可以自定义Captcha,这主要是通过扩展 CCaptchaAction来实现的,本例自定义一个验证码功能,随机产生10以内的加减法,用户需要计算出正确的结果才能通过验证. 本例基于上例Yii Framework 开发教程(20) UI 组件 Captcha示例,做如下修改 首先在protected/components 目 录下创建一个MathCaptchaAction,重载generateVerifyCode,

PHP开发框架Yii Framework教程(20) UI组件 Captcha示例

Captcha(全自动区分计算机和人类的图灵测试-Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA)俗称验证码,是一种区分用户是计算机和人的公共全自动程序.在CAPTCHA测试中,作为服务器的 计算机会自动生成一个问题由用户来解答.这个问题可以由计算机生成并评判,但是必须只有人类才能解答.由于计算机无法解 答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类. Yii

PHP开发框架Yii Framework教程(2) Yii Web应用基础

有了前面的"Hello,World", Yii应用开发似乎很容易,别这么快下结论:-),想起多年以前刚开始使用MFC开发时,写完 第一个Hello,World之后,还是觉得无从下手,不知道怎么开始写MFC应用,这是因为MFC提供了大量的类库,如果对MFC应用程 序框架和其提供的主要类库不事先了解的话,基本上就没办法写应用,学习Yii Framework,也要先了解一下组成Yii应用的几个 主要组成部分也一些常用的类. 在前面教程说过Yii采用MVC(模型-视图-控制器),并介绍了入口脚

Yii2增加验证码步骤详解_php实例

本来以为yii2框架验证码这块很全面,尝试百度google了一下,大多数教程写的零零散散不全面,想着自己写一份带有完整步骤的验证码教程. 我们假设site/login 表单登录需要增加验证码. 1.siteController控制器的actions方法增加captcha设置 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'maxLength' => 4

yii2中添加验证码的实现方法_php实例

本文实例讲述了yii2中添加验证码的实现方法.分享给大家供大家参考,具体如下: 首先,在模型中添加验证码字段: public function rules(){ return ['verifyCode', 'captcha'], } 其次,可以在函数attributeLabels中添加前台页面中验证码的字段名称: public function atrributeLabels(){ return ['verifyCode'=>'Verification Code', ]; } 然后,在视图文件中

Yii 2.0自带的验证码使用经验分享

前言 官网自带的前台验证码中在view下有个contact.php的 文件,大家没事可以先看看它是怎么调验证码 闲话不说,感兴趣的朋友们下面来一起看看详细的介绍: 使用方法如下: 第一步: 因为我本身建立了modules,所以我在我的modules下新建了models的目录(默认gii生成modules是没有这个目录的),我取名为LoginForm.php 代码 如下: namespace app\modules\XXX\models;//这个你们写自己的命名空间,我以我的modules项目路径

Yii输入正确验证码却验证失败的解决方法

前言 最近在做一个需求时,发现输入正确验证码,但是都提示验证码错误 最后追踪代码发现,如果 Model 在 save 前,单独做了 validate 验证,则在验证结束后,会重新生成验证码 然后在我们 Model save 时,也会进行 validate 验证,验证时,验证码已经重新生成了,所以会匹配不上 // 如果这里用到了验证码,就会出问题 $model = new Test(); $model->validate(); $model->save(); // 这样是正确的 $model =