Example of php image verification code

WBOY
Release: 2016-07-25 09:00:22
Original
960 people have browsed it
The example of PHP generating a verification code image is suitable for learning and mastering the PHP gd library. Friends in need can refer to it.

The code is as follows:

<?php  
 /** 
  * 生成验证码图片 
  * site bbs.it-home.org
  * @param String $word 验证码在session中的变量名称 
  */  
 function valiCode($word='randcode'){  
  Header("Content-type: image/gif");  
  $border = 0; //是否要边框 1要:0不要  
  $how = 4; //验证码位数  
  $w = $how*15; //图片宽度  
  $h = 18; //图片高度  
  $fontsize = 10; //字体大小  
  $alpha = "abcdefghijkmnpqrstuvwxyz"; //验证码内容1:字母  
  $number = "23456789"; //验证码内容2:数字  
  $randcode = ""; //验证码字符串初始化  
  srand((double)microtime()*1000000); //初始化随机数种子  
  $im = ImageCreate($w, $h); //创建验证图片  
  /* 
  * 绘制基本框架 
  */  
  $bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色  
  ImageFill($im, 0, 0, $bgcolor); //填充背景色  
  if($border)  
  {  
   $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色  
   ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框  
  }  
    
  /* 
  * 逐位产生随机字符 
  */  
  for($i=0; $i<$how; $i++)  
  {  
   $alpha_or_number = mt_rand(0, 1); //字母还是数字  
   $str = $alpha_or_number ? $alpha : $number;  
   $which = mt_rand(0, strlen($str)-1); //取哪个字符  
   $code = substr($str, $which, 1); //取字符  
   $j = !$i ? 4 : $j+15; //绘字符位置  
   $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色  
   ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符  
   $randcode .= $code; //逐位加入验证码字符串  
  }  
    
  /* 
  * 如果需要添加干扰就将注释去掉 
  * 
  * 以下for()循环为绘背景干扰线代码 
  */  
  /* +  -----绘背景干扰线 开始 ----- + */  
  for($i=0; $i<5; $i++)//绘背景干扰线  
  {  
   $color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色  
   ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线  
  }  
  /* +  -----绘背景干扰线 结束 ------ + */  
    
  /* 
  * 如果需要添加干扰就将注释去掉 
  * 
  * 以下for()循环为绘背景干扰点代码 
  */  
  /* +  ------绘背景干扰点 开始 ------- + */  
    
  for($i=0; $i<$how*40; $i++)//绘背景干扰点  
  {  
   $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色  
   ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点  
  }  
    
  /* +  ------绘背景干扰点 结束 --------- + */  
    
  //把验证码字符串写入session  方便提交登录信息时检验验证码是否正确  例如:$_POST['randcode'] = $_SESSION['randcode']  
  $_SESSION[$word] = $randcode;  
  /*绘图结束*/  
  Imagegif($im);  
  ImageDestroy($im);  
  /*绘图结束*/  
 }  
 ?>
Copy after login
Articles you may be interested in: php verification code simple function code (with renderings) Share a php verification code class and calling example Three example code sharing of php verification code A packaging class for PHP verification code Example code of php custom size verification code Example code for php to generate distorted and rotated verification code images PHP imitation QQ verification code implementation code Example of using php verification code function php5 verification code class (simple and practical) Example of php verification code (GD library generates verification code) PHP implementation code for real-time refresh when clicking on the verification code Simple example of php color verification code How to implement PHP verification code refresh and partial refresh Example of php GD library generating verification code Example of php generating verification code php random verification code php generates random verification code (picture and text) A relatively stable PHP login system verification code Use php to generate verification code with snowflake background


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template