网站地图    收藏   

主页 > php专栏 > php综合实列 >

一个简单的php图形验证码生成程序 - 综合实例

来源:自学PHP网    时间:2014-12-02 13:09 作者: 阅读:次

[导读] 生成验证码原理相当简单就是利用mt_rand随机生成一个数字,然后保存到session中用来用户登录时判断输入的验证码与我们生成的是否一致,然后...

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

生成验证码原理相当简单就是利用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. } 
  18. $_SESSION['eifr_checkvcode'] = $vcodes; 
  19. if(function_exists('imagecreate')){ 
  20.     //generate picture validation code 
  21.     Header("Content-type: image/PNG"); 
  22.     $img = imagecreate(44,18); 
  23.     $bg = ImageColorAllocate($img, 245,245,245); 
  24.     imagefill($img,0,0,$bg); //background 
  25.      
  26.     //generate Number 4 
  27.     for($i=0;$i<4;$i++){ 
  28.         $font = ImageColorAllocate($img, rand(100,255),rand(0,100),rand(100,255)); 
  29.         $vnum = substr($vcodes, $i, 1); 
  30.         imagestring($img, 5, 2+$i*10, 1, $vnum, $font); 
  31.     } 
  32.     //add interference 
  33.     for($i=0;$i<100;$i++) 
  34.     {  
  35.         $randcolor = ImageColorallocate($img,rand(0,255),rand(0,255),rand(0,255)); 
  36.         imagesetpixel($img, rand()%70 , rand()%30 , $randcolor); 
  37.     }  
  38.     ImagePNG($img); 
  39.     ImageDestroy($img); 
  40. } 
  41. ?> 

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论