php实现点击可刷新验证码
本文实例为大家分享了php点击可刷新验证码的具体代码,供大家参考,具体内容如下
验证码类文件CreateImg.class.php
<?php classValidationCode { private$width,$height,$codenum; public$checkcode;//产生的验证码 private$checkimage;//验证码图片 private$disturbColor='';//干扰像素 function__construct($width='80',$height='20',$codenum='4') { $this->width=$width; $this->height=$height; $this->codenum=$codenum; } functionoutImg() { //输出头 $this->outFileHeader(); //产生验证码 $this->createCode(); //产生图片 $this->createImage(); //设置干扰像素 $this->setDisturbColor(); //往图片上写验证码 $this->writeCheckCodeToImage(); imagepng($this->checkimage); imagedestroy($this->checkimage); } privatefunctionoutFileHeader() { header("Content-type:image/png"); } privatefunctioncreateCode() { $this->checkcode=strtoupper(substr(md5(rand()),0,$this->codenum)); } privatefunctioncreateImage() { $this->checkimage=@imagecreate($this->width,$this->height); $back=imagecolorallocate($this->checkimage,255,255,255); $border=imagecolorallocate($this->checkimage,0,0,0); imagefilledrectangle($this->checkimage,0,0,$this->width-1,$this->height-1,$back);//白色底 imagerectangle($this->checkimage,0,0,$this->width-1,$this->height-1,$border);//黑色边框 } privatefunctionsetDisturbColor() { for($i=0;$i<=200;$i++) { $this->disturbColor=imagecolorallocate($this->checkimage,rand(0,255),rand(0,255),rand(0,255)); imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor); } } privatefunctionwriteCheckCodeToImage() { for($i=0;$i<=$this->codenum;$i++) { $bg_color=imagecolorallocate($this->checkimage,rand(0,255),rand(0,128),rand(0,255)); $x=floor($this->width/$this->codenum)*$i; $y=rand(0,$this->height-15); imagechar($this->checkimage,rand(5,8),$x,$y,$this->checkcode[$i],$bg_color); } } function__destruct() { unset($this->width,$this->height,$this->codenum); } } ?>
包含文件imgcode.php
<?php session_start(); require_once('CreateImg.class.php'); $image=newValidationCode('80','20','4');//图片长度、宽度、字符个数 $image->outImg(); $_SESSION['validationcode']=$image->checkcode;//存贮验证码到$_SESSION中 ?>
前台文件demo.php
?php session_start(); $test=$_POST['test']; $test=strtoupper(trim($test)); $submit=$_POST['submit']; if(isset($submit)){ if($test==$_SESSION['validationcode']){ echo'true'; }else{ echo'false'; } } ?> <html> <head> <title>Image</title> <metahttp-equiv="content-type"content="text/html;charset=utf-8"> <scriptlanguage="javascript"> functionnewgdcode(obj,url){ obj.src=url+'?nowtime='+newDate().getTime(); //后面传递一个随机参数,否则在IE7和火狐下,不刷新图片 } </script> <body> <imgsrc="imgcode.php"alt="看不清楚,换一张"align="absmiddle"style="cursor:pointer;"onclick="javascript:newgdcode(this,this.src);"/> <formmethod="POST"name="form1"action="image.php"> <inputtype="text"name="test"> <br/> <inputtype="submit"name="submit"value="提交"> </form> </body> </head> </html>
以上就是为大家介绍的php点击验证码即可刷新的全部代码,希望对大家的学习有所帮助。