Heim > Backend-Entwicklung > PHP-Tutorial > php图片验证码的例子

php图片验证码的例子

WBOY
Freigeben: 2016-07-25 09:00:22
Original
973 Leute haben es durchsucht
php生成验证码图片的例子,适合用来学习掌握php gd库,有需要的朋友,参考下吧。

代码如下:

<?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);  
  /*绘图结束*/  
 }  
 ?>
Nach dem Login kopieren
您可能感兴趣的文章: php验证码简单函数代码(附效果图) 分享一个php 验证码类及调用示例 php验证码的三个实例代码分享 一个php验证码的封装类 php自定义大小验证码的实例代码 php生成扭曲及旋转的验证码图片的实例代码 php仿QQ验证码的实现代码 php验证码函数使用的例子 php5验证码类(简易实用型) php验证码(GD库生成验证码)的例子 php点击验证码实时刷新的实现代码 php彩色验证码的简单例子 php验证码刷新与局部刷新的实现方法 php GD库生成验证码的实例 php生成验证码的例子 php随机验证码 php生成随机验证码(图文) 一个比较稳定的php登陆系统验证码 用php生成带有雪花背景的验证码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage