首页 > 开发 > PHP > 正文

一个简单的php图形验证码生成程序

2024-05-04 23:06:20
字体:
来源:转载
供稿:网友

生成验证码原理相当简单就是利用mt_rand随机生成一个数字,然后保存到session中用来用户登录时判断输入的验证码与我们生成的是否一致,然后就是把随机数字利用php gd函数生成一张图片,这样就完成了验证码的生成了,实例代码如下:

  1. <?php 
  2. /** 
  3.  *  
  4.  * @file imgvcode.php 
  5.  * @create date 2007-09-25 
  6.  * @copyright (c) 2005 - 2007 eifr.com 
  7.  * @license http://www.hzhuti.com/nokia/n97/ 
  8.  * eifr is free software 
  9.  */ 
  10. session_start(); 
  11. // main 
  12. $vcodes = ''
  13. //generate Number 4 
  14. srand((double)microtime()*1000000); 
  15. for($i=0;$i<4;$i++){ 
  16.     $vcodes.=rand(1,9); 
  17. $_SESSION['eifr_checkvcode'] = $vcodes
  18. if(function_exists('imagecreate')){ 
  19.     //generate picture validation code 
  20.     Header("Content-type: image/PNG"); 
  21.     $img = imagecreate(44,18); 
  22.     $bg = ImageColorAllocate($img, 245,245,245); 
  23.     imagefill($img,0,0,$bg); //background 
  24.      
  25.     //generate Number 4 
  26.     for($i=0;$i<4;$i++){ 
  27.         $font = ImageColorAllocate($img, rand(100,255),rand(0,100),rand(100,255)); 
  28.         $vnum = substr($vcodes$i, 1); 
  29.         imagestring($img, 5, 2+$i*10, 1, $vnum$font); 
  30.     } 
  31.     //add interference 
  32.     for($i=0;$i<100;$i++) 
  33.     {  
  34.         $randcolor = ImageColorallocate($img,rand(0,255),rand(0,255),rand(0,255)); 
  35.         imagesetpixel($img, rand()%70 , rand()%30 , $randcolor); 
  36.     }  
  37.     ImagePNG($img); 
  38.     ImageDestroy($img); 
  39. ?> 

注:php生成验证码需要开启php gd图片库哦,要不是不能生成的。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表