验证码系统
写在前面:这是一个php验证码系统,基于GD库加Session实现,难点不多,在下文项目总结中集中说,这个项目极好的练习了php面向对象编程(php功能大体全靠一个类)。
GD库是一个开源的用于创建图形图像的函数库,该函数库由C语言编写,可以在 Perl,PHP 等多种语言中使用。GD 库中提供了一系列用来处理图片的 API(接口),使用 GD 库可以处理图片、生成图片,也可以给图片加水印等。
文件描述
|-- README.md // 描述文件
|-- controller
| |-- check.php // 检查验证码是否正确
| |-- code.php // 验证码路径
| |-- codeController.php // 一系列验证码功能类
|-- font
| |-- AbelBecker-Light-Italic.ttf // 字体文件
|-- index.html // 显示页面
项目总结
第一点练的是gd库操作生成验证码,gd库的操作不难,看文档能很快实现想要的效果,有一点要注意的是gd库的环境变量putenv('GDFONTPATH=' . realpath('..'));
我是加了一层文件夹这边写了两个点,当这个文件和font文件夹在同级目录时只要一个点,
第二点要熟悉的是Session的应用存session时一套操作,以及取Session时最前面session_start();
要注意。
session_start(); $_SESSION['code'] = $code; $_SESSION['codeTime'] = time(); session_commit();
第三点是类中公开方法和私有方法的使用,整个Captcha类中有四个方法,生成验证码和检查验证码公开,保存验证码和生成验证码图片私有。
还有一些php自带函数的使用就不详细展开了,常用的随机数方法[rand(0, 10)
、字符串长度统计strlen($str)
、变量是否为空empty($code)
、获取session销毁session$_SESSION['code']; unset($_SESSION['code']);
类中属性的调用*$this*->code;
等等等等
前端js中一个获取新图片的奇技淫巧,也不是第一次用了img.src = './controller/code.php?t=' + new Date().getTime();
挺实用的。
最后一点原生post请求中容易忽略的请求头的设置,这个是前后端联合的一个小坑,可能是我不常用,踩到这个坑了。
以上总结可能有错
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。