Yii验证码实现

本文描述yii验证码的实现,仅仅是笔者应用的一个小例子,网上也有,总结一下,希望帮助到有需要的Yii爱好者。1、笔者用的是用户登录,所以在sitecontroller中加以下代码:

public function actions()
{
    return array(
    // captcha action renders the CAPTCHA image displayed on the contact page
    'captcha'=>array(
    'class'=>'CCaptchaAction',
    'backColor'=>0xFFFFFF, //背景颜色
    'minLength'=>4, //最短为4位
    'maxLength'=>4, //是长为4位
    'transparent'=>true, //显示为透明,当关闭该选项,才显示背景颜色
    ),
);

2、在表单文件中加如下代码(视图文件如login.php):

<?php if(CCaptcha::checkRequirements()): ?>
<div>
    <?php echo $form->labelEx($model,'verifyCode'); ?>
        <div>
            <?php $this->widget('CCaptcha'); ?>
            <?php echo $form->textField($model,'verifyCode'); ?>
        </div>
        <div>输入验证码<br/>
    </div>
    <?php echo $form->error($model,'verifyCode'); ?>
</div>

3、在Loginform模型(LoginForm.php)中 加入如下代码,主要是添加属性字段,否则会报错(不存在的属性 )

public $username;
public $password;
public $verifyCode;
public $rememberMe;
private $_identity;

通过上面的操作实际上我们已经可以看到验证码了,但是在操作的时候我们会发现不输入验证码仍然可以,原因在于我们还没有指定验证是必须的,在LoginForm.php中加上array('verifyCode','required')来指定必须,这时我们如果遗漏验证码,将会如下图所示:

5551337296709.jpg

发表评论