php图像验证码生成代码
更新时间:2017年6月11日 22:11 点击:2106
本文实例为大家分享了php封装的一个生成图像验证码,供大家参考,具体内容如下
一、代码
index..php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js+GD2函数制作无刷新验证码</title> <link rel="stylesheet" type="text/css" href="css/style.css" rel="external nofollow" > </head> <body> <div style="width: 750px; border: 1px solid #0D6C8C; text-align: left"> <div style="width:100%; height:25px; border:1px #FFFFFF solid; background:url(img/t-background.gif); color:#FFFFFF; padding-top:5px; padding-left:20px; text-align:left">填写用户注册信息</div> <div style="width:400px; text-align:left; padding-left:50px; padding-top:15px; float:left"> <script language="javascript"> function chkinput(form) { if (form.username.value==''){ alert('请输入用户名!'); form.username.focus(); return false; } if (form.password.value==''){ alert('请输入注册密码!'); form.password.focus(); return false; } if (form.defPassword.value==''){ alert('请输入确认密码!'); form.defPassword.focus(); return false; } if (form.password.value.length<6){ alert('密码长度应大于6位!'); form.password.focus(); return false; } if (form.password.value!=form.defPassword.value){ alert('密码与确认密码不同!'); form.password.focus(); return false; } if (form . email . value == "") { alert("请输入E-mail地址!"); form . email . select(); return (false); } var i= form . email . value . indexOf("@"); if (i < 0) { alert("请输入正确的E-mail地址!"); form . email . select(); return (false); } if (form . tel . value == "") { alert('请输入电话号码!'); form . tel . focus(); return (false); } var t=/^([0-9]|[\-])+$/g; if (! t . test(form . tel . value) || form . tel . value . length > 18 || form . tel . value . length < 7) { alert('电话格式输入有误!'); form . tel . focus(); return (false); } if (form.address.value==''){ alert('请输入联系地址!'); form.address.focus(); return false; } if (form.validatorCode.value==''){ alert('请输入验证码!'); form.validatorCode.focus(); return false; } if (form.validatorCode.value!=form.defValidatorCode.value) { alert('验证码输入有误!'); form.validatorCode.focus(); return false; } return true; } </script> <form name="form1" method="post" action="success.php" onSubmit="return chkinput(this)"> 用户名: <input type="text" name="username" size="30" class="input" /><br><br> 密 码: <input type="password" name="password" size="30" class="input" /><br><br> 确认密码:<input type="password" name="defPassword" size="30" class="input"><br><br> E-mail: <input type="text" name="email" size="30" class="input" /><br><br> 电话: <input type="text" name="tel" size="30" class="input" /><br><br> 联系地址:<input type="text" name="address" size="30" class="input" /><br><br> 验证码: <input type="text" name="validatorCode" size="10" class="input" /> <input type="hidden" name="defValidatorCode" value="" /> <script language="javascript"> var num1=Math.round(Math.random()*10000000); var num=num1.toString().substr(0,4); document.write("<img name=codeimg src='TestCode.php?code="+num+"'>"); form1.defValidatorCode.value=num; function reCode(){ var num1=Math.round(Math.random()*10000000); var num=num1.toString().substr(0,4); document.codeimg.src="TestCode.php?code="+num; form1.defValidatorCode.value=num; } </script> <a href="javascript:reCode()" rel="external nofollow" class="a1">看不清</a> <br><br> <input type="submit" value="提交"> <input type="reset" value=" 重写"> </form> </div> <div style="width:300px; float:right; padding-top:20px"> <div style="width:285px; height:250px; border:1px dotted #999999; background:#E9F2F7; OVERFLOW-X: auto; OVERFLOW-Y:auto; text-align:left; line-height:20px"> 用户在使用***网站网络服务过程中,必须遵循以下原则:<br /> 1、遵守中国有关的法律和法规。不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益。不得利用***网站网络服务系统进行任何不利于***网站的行为。<br /> 2、遵守所有与网络服务有关的网络协议、规定和程序。<br /> 3、不干扰或混乱网络服务。<br /> 4、不得为任何非法目的而使用本网络服务系统。<br /> 5、不得传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗的或其他任何非法的信息资料。<br /> 6、不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益。<br /> 7、不得在论坛BBS或留言簿发表任何与政治相关的信息。 <br /> 8、遵守所有使用网站服务的网络协议、规定、程序和惯例。<br /> 9、如发现任何非法使用用户帐号,应立即通告***网站。<br /> 10、如用户在使用网络服务时违反上述任何规定,***网站有权要求用户改正或直接取消该帐号并停止为该用户提供相关的网络服务。<br /> </div> </div> </div> <?php require_once 'footer.php'; ?> </body> </html>
TestCode.php
<?php class TestCode{//创建类名为TestCode private $width; private $height; private $str; private $im; private $strColor; function __construct($width,$height){ $this->width=$width; $this->height=$height; $this->str=$_GET['code']; $this->createImage(); } function createImage(){ $this->im=imagecreate($this->width,$this->height);//创建画布 imagecolorallocate($this->im,200,200,200);//为画布添加颜色 for($i=0;$i<4;$i++){//循环输出四个数字 $this->strColor=imagecolorallocate($this->im,rand(0,100),rand(0,100),rand(0,100)); imagestring($this->im,rand(3,5),$this->width/4*$i+rand(5,10),rand(2,5),$this->str[$i],$this->strColor); } for($i=0;$i<200;$i++){//循环输出200个像素点 $this->strColor=imagecolorallocate($this->im,rand(0,255),rand(0,255),rand(0,255)); imagesetpixel($this->im,rand(0,$this->width),rand(0,$this->height),$this->strColor); } } function show(){// header('content-type:image/png');//定义输出为图像类型 imagepng($this->im);//生成图像 imagedestroy($this->im);//销毁图像释放内存 } } $image=new TestCode(80,20);//将类实例化为对象 $image->show();//调用函数 ?>
二、运行结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
这篇文章主要介绍了Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-06-24- 今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
- web开发中,经常会使用验证码功能,例如登录、注册,或其他关键功能之前经常会使用。下面通过实例代码给大家介绍Web制作验证码功能实例代码,感兴趣的朋友一起看看吧...2017-06-24
- 这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法...2021-08-22