PHP 用session与gd库实现简单验证码生成与验证的类方法

2019-05-02 14:13:33王振洲

上面的字体可以随意设置。

下面的代码讲返回一个图像,实例化Captcha类后动态生成的一个图像。(outCaptcha.php)

<?php

require('Captcha.php');
$code= new Captcha();
header('Content-Type:image/png');
$code->execute();

header(‘Content-Type:image/png');

这句话的作用是告诉浏览器输出的是png图像,而不是html代码。浏览器收到后就将下面的输出解析成图像。

然后写一个html静态页面(testCaptcha.html),创建表单

<!DOCTYPE html>
<html>
  <head>
    <title>验证码测试</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
    <h1>请输入验证码:</h1>
    <img src="outCaptcha.php"/>
    <form method="POST" action="prove.php">
      <input type="text" name="input_captcha"/>
      <button name="submit">确定</button>
    </form>
  </body>
</html>

仅仅是这样是不够的,看到表单提交的地址了么?那个就是用来验证验证码是否输入正确的代码:

session_start();
$inputCaptcha= trim($_POST['input_captcha']);
require('Captcha.php');
if(Captcha::isRight($inputCaptcha)){
  echo '验证码正确';
}else{
  echo '验证码错误或已过期';
}
session_destroy();

这里还是要导入Captcha这个类,然后调用其静态方法来验证你的输入。最后销毁整个会话。

最后看看效果吧

太好了,成功了。那再故意输错试试,后退一下,然后刷新(如果不刷新浏览器将直接调用缓存中的验证码图片,这个时候我们的验证码还没有生成呢!所以无论怎么样都出错)。

当然,真正的验证码是可以单击换一张的,这利用了ajax技术。

以上这篇PHP 用session与gd库实现简单验证码生成与验证的类方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易采站长站。

相关文章 大家在看