用thinkPHP实现验证码的功能

许多系统的登录都有验证码,而如果使用thinkPHP框架搭建网站的话,验证码的生成和验证就比较容易了

 

              1.生成验证码

thinkPHP有对应生成验证码的方法


要使用验证码,需要导入扩展类库中的ORG.Util.Image类库和ORG.Util.String类库。我们通过在在模块类中增加一个verify方法来用于显示验证码:
  1. Public function verify(){
  2.     import('ORG.Util.Image');
  3.     Image::buildImageVerify();
  4. }

 

2.验证验证码
每次生成验证码的时候,就会通过SESSION记录本次的验证码的md5后的字符串信息,所以,要检查验证码是否正确,我们只需要在Action中使用下面的代码就行了:
    1. if($_SESSION['verify'] != md5($_POST['verify'])) {
    2.    $this->error('验证码错误!');
    3. }
注意,这里的verify名称取决于你的验证码的verifyName参数的值。buildImagesVerify方法不支持中文验证码的显示,如果需要显示中文验证码,请使用
GBVerify方法,参数如下:


用法示例:
  1. Public function verify(){
  2.     import("ORG.Util.Image");
  3.     Image::GBVerify();}

 

  显示效果如下

 

如果无法显示验证码,请检查:
PHP是否已经安装GD库支持;
输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出);
Image类库是否正确导入;
如果是中文验证码检查是否有拷贝字体文件到类库所在目录;
 
posted @ 2016-05-24 15:44  梦里梦到梦  阅读(178)  评论(0编辑  收藏  举报