TP的验证码,即Verify.class.php,此验证码可以支持验证码的生成和验证功能。
生成验证码
//实例化验证码类
$verify = new Verify();
//生成一个验证码图形
$verify->entry();
PS:生成的验证码会将信息保存在session中,可以使用print_r($_SESSION)
来查看。
如果想生成多个验证码,可以传递数字参数即可
//生成第一个验证码
$verify->entry(1);
//生成第二个验证码
$verify->entry(2);
验证码参数
也就是可以对验证码进行一些设置。
参数 | 描述 |
---|---|
expire | 验证码的有效期(秒) |
useImgBg | 是否使用背景图,默认为false |
fontSize | 验证码字体大小(像素),默认为25 |
useCurve | 是否使用混淆曲线,默认为true |
useNoise | 是否添加噪点,默认为true |
imageW | 验证码宽度,设置0为自动计算 |
imageH | 验证码高度,设置0为自动计算 |
length | 验证码长度(位数) |
fontttf | 指定验证码字体,默认为随机获取 |
useZh | 是否使用中文验证码 |
设置参数有两种方式:
一、初始化
//设置验证码参数
$config = array(
'fontSize'=>30,
'length'=>3,
'useNoise'=>false,
);
//实例化验证码类,并传入参数
$verify = new Verify($config);
//生成验证码
$verify->entry();
二、动态方法
//实例化验证码类并传入参数
$verify = new Verify();
//验证码字体大小
$verify->fontSzie = 30;
//验证码位数
$verify->length = 3;
//关闭噪点
$verify->useNoise = false;
//设置验证码字体
$verify->fontttf = '5.ttf'; //取决于Think/Library/Think/Verify/ttfs下的字体文件
//设置背景图片,默认是白的
$verify->useImgBg = true; //开启
//设置验证码背景颜色
$verify->bg = array(200,200,200);
//设置验证码加密密钥
$verify->seKey = 'MOOM.COM';
//生成验证码
$verify->entry();
中文验证码
设置:
1、在Think/zhttfs文件夹下引入中文字体文件,比如加粗雅黑msyhbd.ttf;
2、设置字体文件:
//设置验证码字体
$verify->fontttf = 'myshbd.ttf';
3、设置中文验证码
//$verify->useZh = true;
PS:由于中文字符较大,你也可以限定指定的中文字符、
//限定中文字符
$verify->zhSet = '张三是个好人';
纯数字验证码
//设置纯数字
$verify->codeSet='0123456789';
验证码检测
可以使用Verify.class.php
类中的check方法检测验证码是否输入正确。
第一步、在application/Common/Common/function.php里构建一个函数:
//函数$code是验证码字符,$id是第几个验证码,如果只有一个可以为空(忽略)
function check_verify($code,$id=''){
$verify = new\Think\Verify();
return $verify->check($code,$id);
}
然后,在控制器里就可以这样调用:
//通过输入验证,来验证是否返回true
public function test($code){
echo $code;
var_dump(check_verify($code)); //($code,1)
}
//第二种写法
public function test(){
$code = I('get.code');
var_dump(check_verify($code));
}