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;'
)
)
);?>