用thinkPHP实现验证码的功能

时间:2022-01-10 07:02:45

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

1.生成验证码

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

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

用thinkPHP实现验证码的功能

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

  显示效果如下

用thinkPHP实现验证码的功能


如果无法显示验证码,请检查:
PHP是否已经安装GD库支持;
输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出);
Image类库是否正确导入;
如果是中文验证码检查是否有拷贝字体文件到类库所在目录;

相关文章