Yii的源码包里面是自带有验证码的相关类的,因此在使用验证码的时候无需再加载外部验证码类来助阵了。下面本文将介绍一下如何在项目中加载Yii自带的验证码功能。
具体分三步:
(1)在需要加载验证码的controllers文件里面添加如下代码:
public function actions(){ return array( 'captcha'=> array( 'class'=>'Captcha', 'width'=>65, //默认120 'height'=>25, //默认50 'padding'=>0, //文字周边填充大小 'backColor'=>0xFFFFFF, //背景颜色 'foreColor'=>0x2040A0, //字体颜色 'minLength'=>4, //设置最短为4位 'maxLength'=>4, //设置最长为4位,生成的code在6-7直接rand了 'transparent'=>false, //显示为透明,默认中可以看到为false 'offset'=>1, //设置字符偏移量 'testLimit'=>0 //限制相同验证码出现的次数,0位不限制 ) ); }
(2)在controllers文件所对应的models文件里面添加如下代码:
<?php ...... public $verifyCode;//必须先定义 ...... public function rules(){ return array( ...... //注意这里的'on'=>'login',即action=login的时候显示 array('verifyCode','captcha','on'=>'login','allowEmpty'=>!extension_loaded('gd')), ); } ...... ?>
(3)在需要加载验证码的views页面添加如下代码:
<?php $this->widget('CCaptcha', array( 'showRefreshButton'=>false, 'clickableImage'=>true, 'imageOptions'=>array( 'alt'=>'点击换图', 'title'=>'点击换图', 'id'=>'checkcodeImg', 'style'=>'cursor:pointer;' ) ) );?>