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"></head><body><div> <div>填写用户注册信息</div> <div><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 method="post" action="success.php" onSubmit="return chkinput(this)">用户名:&nbsp;&nbsp;<input type="text" size="30" /><br><br>密&nbsp;&nbsp;码:&nbsp;&nbsp;<input type="password" size="30" /><br><br>确认密码:<input type="password" size="30" ><br><br>E-mail:&nbsp;&nbsp;<input type="text" size="30" /><br><br>电话:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" size="30" /><br><br>联系地址:<input type="text" size="30" /><br><br>验证码:&nbsp;&nbsp;<input type="text" size="10" /><input type="hidden" 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()" >看不清</a><br><br><input type="submit" value="提交">&nbsp;&nbsp;<input type="reset" value=" 重写"></form> </div> <div> <div>&nbsp;&nbsp;&nbsp;&nbsp;用户在使用***网站网络服务过程中,必须遵循以下原则:<br />&nbsp;&nbsp;&nbsp; 1、遵守中国有关的法律和法规。不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益。不得利用***网站网络服务系统进行任何不利于***网站的行为。<br />&nbsp;&nbsp; 2、遵守所有与网络服务有关的网络协议、规定和程序。<br />&nbsp;&nbsp; 3、不干扰或混乱网络服务。<br />&nbsp;&nbsp; 4、不得为任何非法目的而使用本网络服务系统。<br />&nbsp;&nbsp; 5、不得传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗的或其他任何非法的信息资料。<br />&nbsp;&nbsp; 6、不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益。<br />&nbsp;&nbsp; 7、不得在论坛BBS或留言簿发表任何与政治相关的信息。 <br />&nbsp;&nbsp; 8、遵守所有使用网站服务的网络协议、规定、程序和惯例。<br />&nbsp;&nbsp; 9、如发现任何非法使用用户帐号,应立即通告***网站。<br />&nbsp;&nbsp;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();//调用函数?>
二 运行结果
大小: 15.6 KB 大小: 15.6 KB

分享给朋友:
您可能感兴趣的文章:
随机阅读: