时间:2021-05-02
验证码是为了防止机器灌水给网站带来污染以及增加服务器负担而出现的。目前大大小小的网站都有验证码。今天自己实现了一个简单的验证码类。说简单是因为没有加一些干扰的弧线等等,只是将文字旋转了一下。当然,因为字体的原因,要想一眼看出来并不容易。同时,为了避免字母的大小写与数字混淆,又去掉了那些看起来很像的字母数字。
类:
把验证设置成了静态方法,因为生成验证码后已经把验证码存到了session中,验证时直接调用静态方法,而不需要实例化这个类了。
上面的字体可以随意设置。
下面的代码讲返回一个图像,实例化Captcha类后动态生成的一个图像。(outCaptcha.php)
? 1 2 3 4 5 6 <?php require('Captcha.php'); $code= new Captcha(); header('Content-Type:image/png'); $code->execute();header(‘Content-Type:image/png');
这句话的作用是告诉浏览器输出的是png图像,而不是html代码。浏览器收到后就将下面的输出解析成图像。
然后写一个html静态页面(testCaptcha.html),创建表单
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!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>仅仅是这样是不够的,看到表单提交的地址了么?那个就是用来验证验证码是否输入正确的代码:
? 1 2 3 4 5 6 7 8 9 session_start(); $inputCaptcha= trim($_POST['input_captcha']); require('Captcha.php'); if(Captcha::isRight($inputCaptcha)){ echo '验证码正确'; }else{ echo '验证码错误或已过期'; } session_destroy();这里还是要导入Captcha这个类,然后调用其静态方法来验证你的输入。最后销毁整个会话。
最后看看效果吧
太好了,成功了。那再故意输错试试,后退一下,然后刷新(如果不刷新浏览器将直接调用缓存中的验证码图片,这个时候我们的验证码还没有生成呢!所以无论怎么样都出错)。
当然,真正的验证码是可以单击换一张的,这利用了ajax技术。
以上这篇PHP 用session与gd库实现简单验证码生成与验证的类方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文以实例演示5种验证码,并介绍生成验证码的函数。PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。session_
在php中实现验证码还是很方便的,关键点在于掌握phpgd库与session的用法。纵观网上php生成验证码的例子,无不是phpgd库与session相结合,并
本文以实例演示5种验证码,并介绍生成验证码的函数。PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。1、HTML5中
本文实例讲述了PHP登录验证码的实现与使用方法。分享给大家供大家参考,具体如下:1.新建code.php验证码生成文件在此之前必须打开php的GD库,修改php
这是利用GD库生成验证码的页面test.PHP