Yii 验证码设置

1.首先在所需的controller下的 actions() 里添加如下代码:

public function actions() {  

   return array(  

       'captcha'=> array(  

               'class'=>'CCaptchaAction',

               'width'=>140,    //默认120

               'height'=>70,    //默认50

               'padding'=>2,    //文字周边填充大小

               'backColor'=>0xFFFFFF,      //背景颜色

               'foreColor'=>0x2040A0,     //字体颜色

               'minLength'=>6,      //设置最短为6位

               'maxLength'=>7,       //设置最长为7位,生成的code在6-7直接rand了

               'transparent'=>false,      //显示为透明,默认中可以看到为false

               'offset'=>-2,        //设置字符偏移量

               'controller'=>'admin',        //拥有这个动作的controller

   ));  

}

 

2.然后在相应的view中插入下面代码:

<?php if (extension_loaded('gd')): ?>

           <div class="row">

               <?php echo CHtml::activeLabelEx($model, 'verifyCode') ?>

           <div>

           <?php $this->widget('CCaptcha'); ?>

           <?php echo CHtml::activeTextField($model,'verifyCode'); ?>

           </div>

           <div class="hint">Please enter the letters as they are shown in the image above.

           <br/>Letters are not case-sensitive.</div>

           </div>

       <?php endif; ?>

 

3.在model中添加一个verifycode属性,然后通过captcha验证器来验证用户输入的验证码:

class User extends CActiveRecord {  

   public $verifyCode; //为User Model 设置一个新的属性  

   public function rules() {  

       return array(  

       .........  

       array('verifyCode', 'captcha', 'on'=>'login', 'allowEmpty'=> !extension_loaded('gd')),  

   );  

   }  

}

 

第三步要注意的是'on'=>'login'对于刚接触yii的人添加很多时候不成功都是没有理解这段的意思。这段代码是指你要应用的场景。如果你在controller里没有设置场景,就去掉这一段代码。都添加完成后可以看手册调整controller中相关参数可以更改样式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值