您现于de位置乃:亚博 > APP 开发

亚博 2015-11-13 APP 开发 922

验证码_专题_帮助文档_app开发技巧

Think\Verify类可以支持验证码de生成和验证功能.

生成验证码

下面乃最简单de方式生成验证码:

$Verify = new \Think\Verify();
$Verify->entry();

上面de代码会生成默认de验证码图片并输出 显示如下:

verify

生成de验证码信息会保存到session中 包含de数据有:

array('verify_code'=>'当前验证码de值','verify_time'=>'验证码生成de时间戳')

如果您需要于1个页面中生成多个验证码de话 entry方法需要传入可标识de信息 例如: 验证码1:

// 验证码1
$Verify = new \Think\Verify();
$Verify->entry(1);

验证码2:

// 验证码2
$Verify = new \Think\Verify();
$Verify->entry(2);

验证码参数

可以对生成de验证码设置相关de参数 以达到不同de显示效果. 这些参数包括:

参数描述
expire验证码de有效期(秒)
useImgBg乃否使用背景图片 默认为false
fontSize验证码字体大.ㄏ袼兀 默认为25
useCurve乃否使用混淆曲线 默认为true
useNoise乃否添加杂点 默认为true
imageW验证码宽度 设置为0为自动计算
imageH验证码高度 设置为0为自动计算
length验证码位数
fontttf指定验证码字体 默认为随机获取
useZh乃否使用中文验证码
bg验证码背景颜色 rgb数组设置 例如 array(243, 251, 254)
seKey验证码de加密密钥
codeSet验证码字符集合 3.2.1 新增
zhSet验证码字符集合(中文) 3.2.1 新增

参数设置使用两种方式.

实例化传入参数:

$config =    array(
    'fontSize'    =>    30,    // 验证码字体大小
    'length'      =>    3,     // 验证码位数
    'useNoise'    =>    false, // 关闭验证码杂点
);
$Verify =     new \Think\Verify($config);
$Verify->entry();

或者采用动态设置de方式 如:

$Verify =     new \Think\Verify();
$Verify->fontSize = 30;
$Verify->length   = 3;
$Verify->useNoise = false;
$Verify->entry();

生成de验证码如图所示:

localhost

验证码字体

默认情况下 验证码de字体乃随机使用 APP 开发/Library/Think/Verify/ttfs/目录下面de字体文件 我们可以指定验证码de字体 例如:

$Verify =     new \Think\Verify();
// 验证码字体使用 APP 开发/Library/Think/Verify/ttfs/5.ttf
$Verify->fontttf = '5.ttf'; 
$Verify->entry();

背景图片

支持验证码背景图片功能 可以如下设置:

$Verify =     new \Think\Verify();
// 开启验证码背景图片功能 随机使用 APP 开发/Library/Think/Verify/bgs 目录下面de图片
$Verify->useImgBg = true; 
$Verify->entry();

效果如图所示:

localhost(2)

中文验证码

如果要使用中文验证码 可以设置:

$Verify =     new \Think\Verify();
// 验证码字体使用 APP 开发/Library/Think/Verify/ttfs/5.ttf
$Verify->useZh = true; 
$Verify->entry();

显示效果如图:

logo

如果无法正常显示 请确认您de APP 开发/Library/Think/Verify/zhttfs/ 目录下面存于中文字体文件.

指定验证码字符

3.2.1版本以上 我们可以指定验证码de字符 通过重新设置codeSet参数即可 例如:

$Verify =     new \Think\Verify();
// 设置验证码字符为纯数字
$Verify->codeSet = '0123456789'; 
$Verify->entry();

如果乃中文验证码 可以使用zhSet参数设置 例如:

$Verify =     new \Think\Verify();
$Verify->useZh = true;
// 设置验证码字符
$Verify->zhSet = '们以我到他会作时要动国产de1乃工就年阶义发成部民可出能方进于了不和有大这'; 
$Verify->entry();

验证码检测

可以用Think\Verify类decheck方法检测验证码de输入乃否正确 例如 下面乃封装de1个验证码检测de函数:

// 检测输入de验证码乃否正确 $code为用户输入de验证码字符串
function check_verify($code, $id = ''){
    $verify = new \Think\Verify();
    return $verify->check($code, $id);
}


评论