首页 > 语言 > PHP > 正文

php加入干扰的生成验证码代码

2024-09-04 11:44:19
字体:
来源:转载
供稿:网友

本款php生成验证码代码原理生成随机数-->创建图片-->随机数写进图片-->保存在session中,看一下流程验证码图片生成 通知浏览器将要输出PNG图片,准备好随机数发生器种子 srand((double)microtime()*1000000); 将四位整数验证码绘入图片.

php加入干扰的生成验证码代码如下:

  1. /*===================== 
  2. 产生随机字符串函数 
  3. =====================*/ 
  4. function random($length) { 
  5.  $hash = ''
  6.  $chars = 'abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz'
  7.  $max = strlen($chars) - 1; 
  8.  mt_srand((double)microtime() * 1000000); 
  9.  for($i = 0; $i < $length$i++) { 
  10.   $hash .= $chars[mt_rand(0, $max)]; 
  11.  } 
  12.  return $hash
  13.  
  14. //验证码图片生成 
  15.  
  16.  session_start(); 
  17.     //通知浏览器将要输出png图片  
  18.     header("content-type: image/png");  
  19.     //准备好随机数发生器种子   
  20.     //srand((double)microtime()*1000000);  
  21.     //准备图片的相关参数    
  22.     $im = imagecreate(62,22);  
  23.     $black = imagecolorallocate($im, 0,0,0);  //rgb黑色标识符  
  24.     $white = imagecolorallocate($im, 255,255,255); //rgb白色标识符  
  25.     $gray = imagecolorallocate($im, 179,183,185); //rgb灰色标识符  
  26.     //开始作图      
  27.     imagefill($im,0,0,$gray);  
  28.     //while(($randval=rand()%100000)<10000);{  
  29.         //$_session["check_code"] = $randval;  
  30.         //将四位整数验证码绘入图片 
  31.   $randval=random(4); 
  32.   $_session["check_code"]=$randval
  33.         imagestring($im, 5, 10, 3, $randval$white);  
  34.     //}  
  35.     //加入干扰象素     
  36.     for($i=0;$i<150;$i++){  
  37.         $randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));  
  38.         imagesetpixel($im, rand()%70 , rand()%30 , $white);  
  39.     } //开源代码Vevb.com 
  40.     //输出验证图片  
  41.     imagepng($im);  
  42.     //销毁图像标识符  
  43.     imagedestroy($im); 

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