一個比較簡易的php驗證碼

 

  
  
  
  
  1. <?php 
  2.  
  3.     class captcha { 
  4.         public static function generate($width,$height){ 
  5.             $char_arr = array_merge(range('a','z'),range('A','Z'),range(1,9)); 
  6.             $rand_keys = array_rand($char_arr,4); 
  7.             shuffle($rand_keys); 
  8.             $rand_str = ''//設置初始值 
  9.             foreach($rand_keys as $key ){ 
  10.                 $rand_str .= $char_arr[$key]; // 注意是 .= 
  11.             } 
  12.  
  13.             //將 $rand_str保存到 session中 
  14.             $_SESSION['captcha_code'] = $rand_str
  15.  
  16.             $img = p_w_picpathcreatetruecolor($width,$height); 
  17.                          
  18.             //增長背景顏色            
  19.             $back_color = p_w_picpathcolorallocate($img, mt_rand(160,250), mt_rand(150,240), mt_rand(150,250)); 
  20.              
  21.             p_w_picpathfill($img, 0, 0, $back_color); 
  22.  
  23.             //增長像素點             
  24.             $pixel_color = p_w_picpathcolorallocate($img, mt_rand(95,190), mt_rand(95,190), mt_rand(95,190)); 
  25.             for($i=0;$i<40;$i++){ 
  26.                  
  27.                 p_w_picpathsetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$pixel_color); 
  28.             } 
  29.  
  30.             //增長線條 
  31.             $line_color = p_w_picpathcolorallocate($img, mt_rand(95,190), mt_rand(95,190), mt_rand(95,190)); 
  32.             for($i=0;$i<3;$i++){ 
  33.                  
  34.                 p_w_picpathline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$line_color); 
  35.             } 
  36.  
  37.             //在圖片上面 添加字體,設置字體顏色 
  38.             $str_color = p_w_picpathcolorallocate($img, mt_rand(0,150), mt_rand(0,100), mt_rand(0,140)); 
  39.             p_w_picpathstring($img, 5, 58, 3, $rand_str$str_color); 
  40.  
  41.             //顯示圖片 
  42.             header("content-type:p_w_picpath/png"); 
  43.             p_w_picpathpng($img); 
  44.              
  45.             //銷燬圖片 
  46.             p_w_picpathdestroy($img); 
  47.  
  48.         } 
  49.  
  50.         public static function checkCode($str){ 
  51.             if(strtoupper($_SESSION['captcha_code']) == strtoupper($str)){ 
  52.                 return true; 
  53.             }else { 
  54.                 return false; 
  55.             } 
  56.         } 
  57.     } 
  58.  
  59.     //captcha::generate(145, 20); 
  60. ?> 
相關文章
相關標籤/搜索