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