<转>用thinkPHP实现验证码的功能
2016-05-14 21:23
357 查看
许多系统的登录都有验证码,而如果使用thinkPHP框架搭建网站的话,验证码的生成和验证就比较容易了
Public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/b28ff8271aa5970ff624f045d333c1b9.png)
if($_SESSION['verify'] != md5($_POST['verify'])) {
$this->error('验证码错误!');
}
注意,这里的verify名称取决于你的验证码的verifyName参数的值。buildImagesVerify方法不支持中文验证码的显示,如果需要显示中文验证码,请使用
GBVerify方法,参数如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/f30bf2b3eea041880bc96c53aee6caa3.png)
[/code]
Public function verify(){
import("ORG.Util.Image");
Image::GBVerify();}
显示效果如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/decf59303ca891badf5fa802641b2e1e.png)
1.生成验证码
thinkPHP有对应生成验证码的方法要使用验证码,需要导入扩展类库中的ORG.Util.Image类库和ORG.Util.String类库。我们通过在在模块类中增加一个verify方法来用于显示验证码:
Public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/b28ff8271aa5970ff624f045d333c1b9.png)
2.验证验证码 每次生成验证码的时候,就会通过SESSION记录本次的验证码的md5后的字符串信息,所以,要检查验证码是否正确,我们只需要在Action中使用下面的代码就行了:[code]
if($_SESSION['verify'] != md5($_POST['verify'])) {
$this->error('验证码错误!');
}
注意,这里的verify名称取决于你的验证码的verifyName参数的值。buildImagesVerify方法不支持中文验证码的显示,如果需要显示中文验证码,请使用
GBVerify方法,参数如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/f30bf2b3eea041880bc96c53aee6caa3.png)
[/code]
用法示例:
Public function verify(){
import("ORG.Util.Image");
Image::GBVerify();}
显示效果如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/decf59303ca891badf5fa802641b2e1e.png)
如果无法显示验证码,请检查: PHP是否已经安装GD库支持; 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出); Image类库是否正确导入; 如果是中文验证码检查是否有拷贝字体文件到类库所在目录;
相关文章推荐
- php 数字转换大写汉字
- FTP 权限的修改 之CuteFTP问题
- 3步配置虚拟主机
- zendstudio10.0调试方法
- 安卓学习笔记之自定义ContentProvider
- PHP中的可变参数函数和可选参数函数
- php &$
- php中函数和方法的区别
- FragmentpagerAdapter和FragmentStatePagerAdapter的区别
- php发送错误日志邮件
- TP框架基础(一)
- PHP笔记②所有输出语句
- PHP之——在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- 走入PHP的世界
- PHPCMS 后台模块开发之Ajax查询
- php.ini配置的完全解读
- PHP发生Call to undefined function imagecreate()错误的解决办法
- thinkphp后台向前台传值没有传过去的小问题
- thinkphp框架下404页面设置 仅三步
- Entity Framework 6 Recipes 2nd Edition(13-1)译 -> 优化TPT继承模型的查询