当前位置:首页 > PHP教程 > php图像处理 > 列表

推荐一款php验证码程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-23 14:29:32 浏览: 评论:0 

分享一款比较好的php验证码程序,有需要的朋友参考一下,代码如下:

  1. <?php 
  2.    /*   网站验证码程序 
  3.     *   运行环境: PHP5.0.18 下调试通过 
  4.     *   需要 gd2 图形库支持(PHP.INI中 php_gd2.dll开启) 
  5.     *   文件名: showimg.php 
  6.     *   作者:  phpfensi.com 
  7.     *   Date:   2007.03 
  8.     */ 
  9.  
  10.    //随机生成一个4位数的数字验证码 
  11.     $num=""
  12.     for($i=0;$i<4;$i++){ 
  13.     $num .= rand(0,9); 
  14.     } 
  15.    //4位验证码也可以用rand(1000,9999)直接生成 
  16.    //将生成的验证码写入session,备验证页面使用 
  17.     Session_start(); 
  18.     $_SESSION["Checknum"] = $num
  19.    //创建图片,定义颜色值 
  20.     Header("Content-type: image/PNG"); 
  21.     srand((double)microtime()*1000000); 
  22.     $im = imagecreate(60,20); 
  23.     $black = ImageColorAllocate($im, 0,0,0); 
  24.     $gray = ImageColorAllocate($im, 200,200,200); 
  25.     imagefill($im,0,0,$gray); 
  26.  
  27.     //随机绘制两条虚线,起干扰作用 
  28.     $style = array($black$black$black$black$black$gray$gray$gray$gray$gray); 
  29.     imagesetstyle($im$style); 
  30.     $y1=rand(0,20); 
  31.     $y2=rand(0,20); 
  32.     $y3=rand(0,20); 
  33.     $y4=rand(0,20); 
  34.     imageline($im, 0, $y1, 60, $y3, IMG_COLOR_STYLED); 
  35.     imageline($im, 0, $y2, 60, $y4, IMG_COLOR_STYLED); 
  36.  
  37.     //在画布上随机生成大量黑点,起干扰作用; 
  38.     for($i=0;$i<80;$i++) 
  39.     { 
  40.    imagesetpixel($im, rand(0,60), rand(0,20), $black); 
  41.     } 
  42.     //将四个数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 
  43.     $strx=rand(3,8); 
  44.     for($i=0;$i<4;$i++){ 
  45.     $strpos=rand(1,6); 
  46.     imagestring($im,5,$strx,$strpossubstr($num,$i,1), $black); 
  47.     $strx+=rand(8,12); 
  48.     }//开源代码phpfensi.com 
  49.     ImagePNG($im); 
  50.     ImageDestroy($im); 
  51.    ?> 

使用方法:本程序可以直接运行,运行之后即可看到一个图形验证码,每次刷新都随机生成新码.

在某页面中使用此程序时,可以用以下代码:

  1. 请输入验证码: 
  2. <input type=text name=passcode> 
  3. <img src=showimg.php> 

这样即可显示出验证码图片,到了验证页面,用以下代码:

  1. $code=$_POST["passcode"]; 
  2. if$code == $_SESSION["Checknum"]){ 
  3. 验证通过 
  4. }else
  5. 验证码错误 

Tags: PHP验证码 PHP验证例子

分享到: