手机版

PHP绘制网站登录首页图片验证码

时间:2021-11-04 来源:互联网 编辑:宝哥软件园 浏览:

几乎所有的网站登录页都会有验证码,验证码是一种安全保护机制,在注册时要求必须有人工操作进行验证,用于防止垃圾注册机大量注册用户账号占用服务器内存从而使服务器瘫痪。

图片验证码的实现十分简单。首先从指定字符集合中随机抽取固定数目的字符,以一种不规则的方法画在画布上,再适当添加一些干扰点和干扰元素,最后将图片输出,一张崭新的验证码就完成了。

先给大家展示下生成的验证码:

点击刷新:

如果大家对实现效果非常满意,请继续往下看。

前端代码如下:

!DOCTYPE html html health eta http-equiv=' content-TYPe ' content=' text/html;字符集=utf-8 '标题这是一个测试!/titlelink rel='样式表type=' text/CSS ' href=' CSS/bootstrap。量滴CSS '/headly表单名称=' form '输入类型=' text '占位符='账号/br/输入类型='密码'占位符='密码/br/输入类型=“文本”占位符='验证码/img id=' verImg ' src=' http : libs/verification。PHP '/a href=' # ' class=' change ' onclick=' changeVer()'点击刷新/ABR/输入类型='提交'值='登录//formscript类型='text/javascript'//刷新验证码函数changeVer(){ document。getelementbyid(' verImg ').src=' http : libs/verification。PHP?tmp='数学。random();}/脚本/正文/htmlphp脚本文件验证码的代码如下:

?PHP session _ start();//开启会议记录验证码数据vCode(4,15);//设置验证码的字符个数和图片基础宽度//vCode字符数目,字体大小,图片宽度、高度函数vCode($num=4,$size=20,$width=0,$height=0) {!$ width $ width=$ num * $ size * 4/5 15;$ height $ height=$ size 10//设置验证码字符集合$ str=' 23456789 abcdefghijkmnpqrstuvwxyzabbdefghijklmnpqrstuvw ';//保存获取的验证码$ code=//随机选取字符对于($ I=0;$ i $ num$i ) {$code .=$str[mt_rand(0,strlen($ str)-1)];}//创建验证码画布$ im=imagecreatetrue color($ width,$ height);//背景色$ back _ color=image color allocate($ im,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));//文本色$ text _ color=imagecolorable($ im,mt_rand(100,255),mt_rand(100,255),mt_rand(100,255));imagefiledrectangle($ im,0,0,$width,$height,$ back _ color);//画干扰线对于($ I=0;$ I 5;$ I){ $ font _ color=image color allocate($ im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));imagearc($im,mt_rand(- $width,$width),mt_rand(- $height,$height),mt_rand(30,$width * 2),mt_rand(20,$height * 2),mt_rand(0,360),mt_rand(0,360),$ font _ color);}//画干扰点对于($ I=0;$ I 50 $ I){ $ font _ color=image color allocate($ im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$ font _ color);}//随机旋转角度数组$array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5);//输出验证码//imagefttext(图像、大小、角度、x、y、颜色、字体文件、文本)@imagefttext($im、$size、$ array _ rand($ array)、$ 12、$size、$text_color、' c : \ WINDOWs \ Fonts \ simsun。TTC ',$ code);$ _ SESSION[' verifYCOde ']=$ COde;//无缓存在每次请求时都会访问服务器//最大年龄在请求1s后再次请求会再次访问服务器,必须重新验证则第一发送请求会访问服务器,之后不会再访问服务器//标头(' Cache-Control:最大年龄=1,s-最大年龄=1,无缓存,必须重新验证');标头(“缓存控制:无缓存”);标题('内容类型:图像/png;charset=GB 2312’);//将图片转化为巴布亚新几内亚格式图像png($ im);图像销毁($ im);}?好了,关于小编给大家介绍的服务器端编程语言(专业超文本预处理器的缩写)绘制图片验证就给大家介绍这么多,希望对大家有所帮助!

版权声明:PHP绘制网站登录首页图片验证码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。