php框架

 首页 > php框架 > ThinkPHP > ThinkPHP 验证码详解及实例 - Thinkphp

ThinkPHP 验证码详解及实例 - Thinkphp

分享到:
【字体:
导读:
          ThinkPHP 内置了验证码的支持,可以直接使用,要使用验证码,需要导入扩展类库中的 ORG Util Image 类库和 ORG Util String 类库 验证码...

ThinkPHP 验证码详解及实例

ThinkPHP 内置了验证码的支持,可以直接使用,要使用验证码,需要导入扩展类库中的 ORG.Util.Image 类库和 ORG.Util.String 类库.

验证码方法

我们通过在在模块类中增加一个 verify 方法来用于显示验证码,最简单的例子:

  1. Public function verify(){ 
  2. // 导入Image类库 
  3. import("ORG.Util.Image"); 
  4. Image::buildImageVerify(); 

import 方法是 ThinkPHP 内置的类库和文件导入方法,上例导入的文件为 ThinkPHP 系统目录下 Lib/ORG/Util/Image.class.php 文件,如果已经将 Image 类库拷贝到了当前项目下,如 Lib/ORG 下,则可以以:

import("@.Util.Image");

方式导入,具体可参见《ThinkPHP import 类库导入》.

import 方法是 ThinkPHP 内置的类库和文件导入方法,上例导入的文件为 ThinkPHP 系统目录下 Lib/ORG/Util/Image.class.php 文件.

访问验证码

可以直接在浏览器里访问该验证码方法以确定验证码是否能正常显示:

http://127.0.0.1/index.php/Public/verify

表单中使用验证码

在表单页面中使用验证码,是以 html img标签 来调用:

  1. "text" name="verify"
  2. "verifyImg" src="__URL__-verify" onClick="changeVerify()" title="点击刷新验证码" /> 

src 属性值即为验证码方法访问地址,视实际情况不同而不同.

验证码刷新

当点击验证码图片时,触发 JavaScript changeVerify() 函数重新读取验证码,从而实现验证码刷新,该函数参考如下:

  1. "JavaScript"
  2. function changeVerify(){ 
  3. var timenow = new Date().getTime(); 
  4. document.getElementByIdx_x('verifyImg').src='__URL__/verify/'+timenow; 
  5.  

验证码验证

在调用验证码 verify 的时候,buildImageVerify 会记录本次验证码的 MD5 信息,在表单验证操作里,以如下方法来检查验证码是否正确:

  1. if($_SESSION['verify'] != md5($_POST['verify'])) 
  2. $this->error('验证码错误!'); 

其中 $_SESSION['verify'] 中的 verify 名称为 buildImageVerify 方法默认 SESSION 注册名称,具体见 buildImageVerify 语法.

上面例子演示了最简单的 ThinkPHP 验证码的使用方法,上面的例子验证码是 4 位数字.

验证码不显示原因

如下发现无法显示验证码,可能的原因如下:

PHP 是否已经安装 GD 库支持,了解更多 GD 库信息参见《PHP 图像处理》GD库部分.

输出之前是否有任何的输出(尤其是 UTF8 的 BOM 头信息输出).

Image 类库是否正确导入,如果是表单页面,请查看是否正确调用了验证码显示方法.

分享到:
thinkphp 图片上传简单方法 - Thinkphp
thinkphp 图片上传简单方法 1、在default中的Index文件夹中新建一个index.html模板,代码如下:           New Document                                                              ...
ThinkPHP Session 使用详解及实例 - Thin...
ThinkPHP Session 使用详解及实例 ThinkPHP 封装了 Session 类,可以直接使用,常用的方法有: Session::set(name, value):注册 session 。 Session::is_set(name):检查Session的值是否设置。 Session::get(name):读取 session 。 Session::clear():清空Session。 Session::destroy()...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……