ThinkPHP 验证码

来源:互联网 发布:网页描述如何优化 编辑:程序博客网 时间:2024/06/08 01:20

一、生成验证码


//实例化验证码类

$verfiy=new verify();


//生成一个验证码图形

$verfiy->entry();


PS: 生成的验证码会将信息保存在session中, 可以使用print_r($_SESSION)来查看。如果想生成多个验证码,可以传递数字参数即可。


//生成第一个验证码

$verfiy->entry(1);


//生成第二个验证码

$verfiy->entry(2);


二.验证码参数

可以对生成的验证码设置相关的参数,以达到不同的显示效果。
参数                                   描述
expire                   验证码的有效期(秒)
useImgBg     是否使用背景图片 默认为false
fontSize      
验证码字体大小(像素) 默认为25
useCurve     
是否使用混淆曲线 默认为 true
useNoise       
是否添加杂点 默认为 true
imageW      
验证码宽度 设置为0为自动计算
imageH        验证码高度 设置为0为自动计算
length                         验证码位数
fontttf            指定验证码字体 默认为随机获取
useZh                 是否使用中文验证码
bg     验证码背景颜色rgb 数组设置,例如array(243, 251, 254)
seKey                      
验证码的加密密钥
codeSet                     验证码字符集合
zhSet                      验证码字符集合(中文)

1、配置变量方式修改验证码


//设置验证码参数

$config=array(

'fontSize'=>30,

'length'=>3,

'useNoise'=>false;

);


//实例化验证码类

$verify=new Verify($config);

$verify->entry();


2、采用动态设置方式

//实例化验证码,并传入参数

$verify=new Verify();

$verify->fontSize=30;

$verify->length=3;


//生成验证码

$verify->entry();


3、如果想让验证码显示中文字符,那么需要几个步骤:

1.Think/zhttfs 文件夹下引入中文字体文件,比如加粗雅黑msyhbd.ttf

2.设置字体文件;
//设置验证码字体
$verify->fontttf= 'msyhbd.ttf';

3.设置中文验证码
//设置中文验证码
$verify->useZh= true;

PS:由于中文字符较为庞大,你也可以限定指定的中文字符。

//限定中文字符
$verify->zhSet= '李炎恢是个好人';

//设置纯数字
$verify->codeSet='0123456789';

三.验证码检测

我们可以使用 Verify.class.php类中的 check 方法检测验证码是否输入正确。

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)
}


0 0