PHP GD 生成图片验证码+session获取存储验证码

PHP GD 生成图片验证码+session获取储存验证码

    下面分享一个PHP制作的图片验证码案例:案例如下图:

PHP GD 生成图片验证码+session获取存储验证码

   运用PHP GD详细请看:http://www.php.net/manual/zh/book.image.php

   后台图片代码如下:

 

<?php
session_start();

$image = imagecreatetruecolor(100,30);//创建一个宽100,高度30的图片
$bgcolor=imagecolorallocate($image,255,255,255);//图片背景是白色
imagefill($image,0,0,$bgcolor);//图片填充白色
//随机数
/**
for($i=0;$i<4;$i++){
  $fontsize=6;
  $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
  $fontcontent=rand(0,9);
  $x=($i*100/4)+ rand(5,10);
  $y=rand(5,10);
  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
**/
//随机数据
$captch_code='';
for($i=0;$i<4;$i++){
  $fontsize=6;
  $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
  $data='asdfdfglfg74erf21854hgfhgfhkg4ljkghjtrtywiqpoqpwepdfgvnjytyut12313345645667686797800';
  $fontcontent=substr($data,rand(0,strlen($data)),1);
  $captch_code.=$fontcontent;
  
  $x=($i*100/4)+ rand(5,10);
  $y=rand(5,10);
  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
$_SESSION['authcode']=$captch_code;

//随机点
for($i=0;$i<200;$i++){
  $pointcolor=imagecolorallocate($image,rand(50,120),rand(50,120),rand(50,120));
  imagesetpixel($image,rand(1,99),rand(1,99),$pointcolor);
}
//随机线
for($i=0;$i<3;$i++){
  $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
  imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}
header("content-type:image/png");
imagepng($image);

imagedestory($image);


?>

前台代码如下:

<?php
   if(isset($_REQUEST['autocode'])){
      session_start();
	  if(strtolower($_POST['autocode']) == $_SESSION['authcode']){
	   echo '正确';
	  }else{
	  echo'错误';
	  }
   
   exit();
   }

?>
<!DOCTYPE html>
<html>
  <head>
   <meta chartset="utf-8">
  </head>
  <body>
     <form method="post"  action="form.php">
	   <p>验证码图片:<img border="1" src="captcha.php?r="<?php echo rand();?> width="100" height="30"  /></p>
	   
	   <p>输入内容:<input type="text" name="autocode" value="" /></p>
       
    <p><input type="submit"  value="提交" style="padding:6px 20px;"/></p>
  
  
     </form>
  </body>


</html>


添加点击执行修改如下即可:

  <p>验证码图片:<img border="1" id="capthcha_img" onclick="this.src='captcha.php?r='+Math.random()" src="captcha.php?r="<?php echo rand();?> width="100" height="30"  /> <a href="javascript:void(0)" onclick="document.getElementById('capthcha_img').src='captcha.php?r='+Math.random()">换一个</a></p>


本案例原创,转载请注明!