验证码,在现在的网站中是一个不可获取的技术。留言,评论,无时无刻都需要验证码来防范用户的刷评论,刷留言。一是限制了用户的违规行为,二十保护了网站的安全, thinkphp自带了验证码功能,中文的,英文的。今天我来给大家讲解一下thinkphp怎么实现英文字母验证码。

thinkphp的官方手册上写的也很明白,在我上次做项目的时候写验证码的时候按照手册写的方法,可是验证码就是显示不出来,最后我拿手册跟代码对照了一遍又一遍,但就是找不到问题,好  那咱们先上代码

手册上的方法:

要使用验证码,需要导入扩展类库中的ORG.Util.Image类库和ORG.Util.String类库。我们通过在在模块类中增加一个verify方法来用于显示

Public function verify(){

import("ORG.Util.Image");

Image::buildImageVerify();

}

每次生成验证码的时候,就会通过SESSION记录本次验证码的md5后的字符串信息,所以,要检查验证码是否正确,我们只需要在Action中使用下面的代码就行了:

if($_SESSION['verify'] != md5($_POST['verify'])) {

$this->error('验证码错误!');

}

注意,这里的verify名称取决于你的验证码的verifyName参数的值。

view里面:

<img style='cursor:pointer' title='刷新验证码' src='__URL__/verify' id='verifyImg' onClick='freshVerify()'/></span>

写上之后验证码不出来  咱们总结一下原因,

1 : 如果报什么什么未定义,那你就需要查看一下controller里面的引入验证码类引入正确了吗,通常写法是import("ORG.Util.Image");

2:这一步是一个小细节,更是检验一个程序员的细心程度,上次我就因为这个问题耽误了一下午的时间, 验证码出不来,访问生成验证码的方法是一堆乱码,各个步骤都没有错误,最后我想到了一个小细节,就是把文件的编码格式改成utf-8无 BOM编码格式,这样就没有错误了,有时候写代码真需要细心细心再细心,不然的话自己挠头去吧。