欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > PHP晋级:三步实现验证码类的设计

PHP晋级:三步实现验证码类的设计

2018-09-21 2800 收藏 0 赞一个 0 真差劲 0 去评论

验证码的作用?

验证码是随机产生的数字和符号,动态生成的一幅图,或者在图片上加上一些干扰信息。验证码一般在表单提交时使用(网站用户注册、登录、论坛发帖时),只有审核成功后才能使用某项功能。验证码可以防止机器恶意注册从而避免严重耗费系统资源,降低网站性能影响正常的用户体验。另外验证码可以确保当前访问者是一个人而非机器。今天问大家介绍一下php用类实现验证码验证。

第一步:用类设计验证码

1、首先要声明一个类,并通过面向对象的特征把实现验证码的细节封装在这个类中。我们要创建一个宽度60像素,高度为20像素,四个数字组成。

声明类的名称是Validationcode,设置了验证码的宽度($width)、高度($height;)、个数($codeNum)、验证码字符($checkCode)、画布($image),并把成员属性width、height、codeNum、checkCode初始化,设置验证码个数是4。

1.jpeg

2、创建向浏览器输出图像的方法showImage(),并调用内部getCreateImage()方法创建画布,outputText()方法调用随机字符串,outputImage()方法生成图像并输出。

getcheckCode()访问该方法获取随机创建的验证码字符串。getCreateImage ()该方法是创建图像,初始化背景。

代码如下图:

2.jpeg

3、通过 createCheckCode()方法生成四个数字字符串,$rand_number=rand(48,57)表示生成数字。通过for循环实现生成4个数字字符串。outputText()方法是随机颜色、随机摆放、随机字符串向图像输出。代码如下图:

3.jpeg

4、outputImage()方法自动检测PHP中GD支持的图像类型,并输出图像。

通过if..elseif..else语句来判断生成的GIF、JPG、PNG、WBMP格式图像是否存在,如果没有支持的图像类型,会输出错误消息并推出程序。__destruct()方法是对象结束之前销毁图像资源释放内存。代码如下:

4.jpeg

第二步:验证码类的实例对象

创建验证码类的对象,从验证码对象中获取生成验证码图片,发送到浏览器中。接着从验证码对象获取字符串,使用session保留字符串在服务器中。session_start();开启SESSION,$image=new Validationcode(60,20,4);创建验证码类的对象,$image->showImage();调用方法向浏览器发送图片,$_SESSION['validationcade']=$image->getcheckCode();把字符串保留在服务器中。代码如下:

5.jpeg

第三步:表单验证

包括用户输入表单和匹配验证码部分。在表单中输出动态获取的验证码图片,单击重新动态获取另一张验证码图片(通过js函数和单击事件完成)。客户端接受的验证和服务器上保留的验证码相同,则提示成功,否则会提示错误。代码如下:

e98d39aecc54401eadd32de0fa1fa24e.jpeg

运行结果如下:

7.jpeg

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论