ThinkPHP框架之验证码的使用案例

  

这篇文章主要介绍了ThinkPHP框架之验证码的使用案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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

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

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

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

ThinkPHP框架之验证码的使用案例

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

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

验证码参数

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

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

参数设置使用两种方式。

实例化传入参数:

ThinkPHP框架之验证码的使用案例

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

ThinkPHP框架之验证码的使用案例

验证码字体

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

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

背景图片

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

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

中文验证码

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

$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf$Verify->useZh = true;$Verify->entry();

显示效果如图:

ThinkPHP框架之验证码的使用案例

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

若ThinkPHP/Library/Think/Verify/zhttfs/里面没有中文字体文件,可以下载或者从C:\Windows\Fonts\里面找到中文字体文件复制过来,注意字体文件扩展名为.ttf .

验证码检测

可以用认为\验证类的<代码> 检查方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

//,检测输入的验证码是否正确,代码为美元用户输入的验证码字符串function  check_verify(代码,美元,美元id =, & # 39; & # 39;) {$ verify =, new  \认为\验证();return 验证→美元支票($代码,,$ id);   }

练习:以登录为例:

控制器方法:

& lt; php ?   namespace 家居\控制器;use 认为\控制器;class  LoginController  extends 控制器   {,,,function 登录()   ,,,{,,,,,,,如果(空($ _POST))   ,,,,,,,{,,,,,,,,,,,这个美元→显示(),,,,,   ,,,,,,,},,,,   ,,,,,,,   ,,,,,,,{,,,,,,,,,,,code 美元;=,$ _POST [“yzm"];,,,,,,,,,,,,, verify 美元;=,new  \认为\验证(),,,,,,,,,,,,如果(验证→美元支票($代码,2)),//代码是用户输入的值,,2是验证码检测标示,必须与生成的验证码标示相同才能验证,,,,,,,,,,,,{,,,,,,,,,,,,,,,如果($ _POST [“uid"] !=?,,,, $ _POST [“pwd"] !=啊?   ,,,,,,,,,,,,,,,{,,,,,,,,,,,,,,,,,,,model 美元;=,D (“Users");,,,,,,,,,,,,,,,,,,,, uid 美元;=,$ _POST [“uid"];,,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

ThinkPHP框架之验证码的使用案例