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

生成验证码

下面是最简单的方式生成验证码:

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

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

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

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

如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:验证码1:

  1. // 验证码1
  2. $Verify =new \Think\Verify();
  3. );

验证码2:

  1. // 验证码2
  2. $Verify =new \Think\Verify();
  3. );

验证码参数

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

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

参数设置使用两种方式。

实例化传入参数:

  1. $config = array(
  2. ,// 验证码字体大小
  3. ,// 验证码位数
  4. 'useNoise'=>false,// 关闭验证码杂点
  5. );
  6. $Verify =new \Think\Verify($config);
  7. $Verify->entry();

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

  1. $Verify =new \Think\Verify();
  2. ;
  3. ;
  4. $Verify->useNoise =false;
  5. $Verify->entry();

生成的验证码如图所示:

验证码字体

默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:

  1. $Verify =new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->fontttf ='5.ttf';
  4. $Verify->entry();

背景图片

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

  1. $Verify =new \Think\Verify();
  2. // 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片
  3. $Verify->useImgBg =true;
  4. $Verify->entry();

效果如图所示:

中文验证码

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

  1. $Verify =new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->useZh =true;
  4. $Verify->entry();

显示效果如图:

如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。

指定验证码字符

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

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

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

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

验证码检测

可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

  1. // 检测输入的验证码是否正确,$code为用户输入的验证码字符串
  2. function check_verify($code, $id =''){
  3. $verify =new \Think\Verify();
  4. return $verify->check($code, $id);
  5. }

验证码

 

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

生成验证码

下面是最简单的方式生成验证码:

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

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

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

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

如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息,例如:验证码1:

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

验证码2:

  1. // 验证码2
  2. $Verify =new \Think\Verify();
  3. $Verify->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 验证码字符集合 3.2.1 新增
zhSet 验证码字符集合(中文) 3.2.1 新增

参数设置使用两种方式。

实例化传入参数:

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

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

  1. $Verify =new \Think\Verify();
  2. $Verify->fontSize =30;
  3. $Verify->length =3;
  4. $Verify->useNoise =false;
  5. $Verify->entry();

生成的验证码如图所示:

验证码字体

默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:

  1. $Verify =new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->fontttf ='5.ttf';
  4. $Verify->entry();

背景图片

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

  1. $Verify =new \Think\Verify();
  2. // 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片
  3. $Verify->useImgBg =true;
  4. $Verify->entry();

效果如图所示:

中文验证码

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

  1. $Verify =new \Think\Verify();
  2. // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
  3. $Verify->useZh =true;
  4. $Verify->entry();

显示效果如图:

如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。

指定验证码字符

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

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

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

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

验证码检测

可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

  1. // 检测输入的验证码是否正确,$code为用户输入的验证码字符串
  2. function check_verify($code, $id =''){
  3. $verify =new \Think\Verify();
  4. return $verify->check($code, $id);
  5. }

最新文章

  1. 9. JEB 1.5插件编写一
  2. 程序跳转到访问一个确定的地址0x100000
  3. Jexus & Mono 迁移
  4. 打开shpfile,mdb,sde工作空间
  5. 解锁windowsphone设备遇到的错误:检查Miscrosoft账户凭据、请重新注册 0x80004005 解决方案
  6. sjtu1333 函数时代
  7. 【python】三个变量互换值
  8. YII 数据库相关操作
  9. [转] JS运算符 &&和|| 及其优先级
  10. Ubuntu Server忘记密码后,单用户模式修改密码进去不了桌面的无奈
  11. WSGI框架及Paste+Pastedeploy+route+webob开发
  12. PHP错误与异常
  13. SSH网上商城---需求分析+表关系分析
  14. PostgreSQL函数(存储过程)----笔记
  15. laravel 填充器Seed
  16. jQ append 添加html 及字符串拼接
  17. Signals的使用(通知)
  18. javascript 深度克隆对象
  19. C# 指定http请求使用Tls1.2
  20. 一个简单的购物金额结算(JAVA)

热门文章

  1. 如何实时查看mysql当前连接数?
  2. POJ 1144 Network (求割点)
  3. 大数据学习——JAVA采集程序
  4. hexo干货系列:(一)hexo+gitHub搭建个人独立博客
  5. HDU4462稻草人
  6. hdu 1421经典dp
  7. [NOIP1998] 提高组 洛谷P1011 车站
  8. Codeforces889C. Maximum Element
  9. python学习之-- Mysql 基础知识
  10. HDU 3609 二分图多重匹配