给登录表单添加验证码,登录表单使用的是LoginForm模型,首先:

在定义登录方法的控制器里:

在视图文件:

这样就ok了!

总共会修改以下3个文件:model中文件/controller中/view中

1.在model层的文件中插入

public $verifyCode;

在rules()中插入

array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),

在attributeLabels()中插入

   'verifyCode' =>'验证码';

在rules()还要添加

1. array('allow',

2. 'actions'=>array('captcha'),

3. 'users'=>array('*'),

4. ),

2.public function actions()

{
return array(
// captcha action renders the CAPTCHA p_w_picpath displayed on the contact page
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF, //背景颜色
'minLength'=>4, //最短为4位
'maxLength'=>4, //是长为4位
'transparent'=>true, //显示为透明
),
);
}

3. 最后在View层的文件中插入

<?php if(CCaptcha::checkRequirements()): ?>

<div>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verifyCode');?>
</div>
<?php endif;?>