php中使用GD庫做驗證碼,phpgd庫驗證碼_PHP教程

來源:互聯網
上載者:User

php中使用GD庫做驗證碼,phpgd庫驗證碼


<?php require_once 'string.func.php';//通過GD庫做驗證碼/** *添加驗證文字 * @param int $type * @param int $length*/function buildRandomString($type=1,$length=4){  $row='';  if($type==1){    $row=join('',range(0, 9));  }else if($type==2){    $row=join('', array_merge(range('a','z'),range('A', 'Z')));  }else if($type==3){    $row=join('', array_merge(range('a','z'),range('A', 'Z'),range(0, 9)));  };  $row=str_shuffle($row);    $row=substr($row,0,$length);  return $row;}/** * 產生縮圖 * @param int $type //包含數字或者英文 * @param int $length 多少個字元 * @param int $pixel 幹擾小點的密度 * @param int $dst_h 幹擾線的密度 * @param string //驗證碼在$_SESSION中的名字 */function verifyImage($type=1,$length=4,$pixel=0,$line=0,$sess_name = "verify"){  //session_start();  //建立畫布  $width = 100;  $height = 40;  $image = imagecreatetruecolor ( $width, $height );  $white = imagecolorallocate ( $image, 255, 255, 255 );  $black = imagecolorallocate ( $image, 0, 0, 0 );  //用填充矩形填充畫布  imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white );  $chars = buildRandomString ( $type, $length );  $_SESSION [$sess_name] = $chars;  //$fontfiles = array ("MSYH.TTF", "MSYHBD.TTF", "SIMLI.TTF", "SIMSUN.TTC", "SIMYOU.TTF", "STZHONGS.TTF" );  $fontfiles = array ("SIMKAI.TTF" );  //由於字型檔比較大,就只保留一個字型,如果有需要的同學可以自己添加字型,字型在你的電腦中的fonts檔案夾裡有,直接運行輸入fonts就能看到相應字型  for($i = 0; $i < $length; $i ++) {    $size = mt_rand ( 14, 18 );    $angle = mt_rand ( - 15, 15 );    $x = 5 + $i * $size;    $y = mt_rand ( 20, 26 );    $fontfile = "../fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )];    $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );    $text = substr ( $chars, $i, 1 );    imagettftext ( $image, $size, $angle, $x, $y, $color, $fontfile, $text );  }  if ($pixel) {    for($i = 0; $i < 50; $i ++) {      imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $black );    }  }  if ($line) {    for($i = 1; $i < $line; $i ++) {      $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );      imageline ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color );    }  }  header ( "content-type:image/gif" );  imagegif ( $image );  imagedestroy ( $image );}

主要要點:

1、如果前面沒有申明session_start();則需要申明;
2、字型可以在cmf輸入fonts下載到自己定義的fonts檔案夾;
3、$_SESSION [$sess_name]可以通過$_POST獲得使用者輸入的驗證碼進行比較。

您可能感興趣的文章:

  • PHP產生圖片驗證碼、點擊切換執行個體
  • 完美解決thinkphp驗證碼出錯無法顯示的方法
  • ThinkPHP開啟驗證碼頁面顯示亂碼的解決方案
  • php程式總是提示驗證碼輸入有誤解決方案
  • php實現的IMEI限制的簡訊驗證碼發送類
  • 如何使用PHP對網站驗證碼進行破解
  • php產生驗證碼函數
  • php傳送簡訊驗證碼完成註冊功能
  • php製作的簡單驗證碼識別代碼

http://www.bkjia.com/PHPjc/1117053.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117053.htmlTechArticlephp中使用GD庫做驗證碼,phpgd庫驗證碼 php require_once 'string.func.php';//通過GD庫做驗證碼/** *添加驗證文字 * @param int $type * @param int $length*/funct...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.