php圖形驗證程式碼顯示不出來

摘要:php圖形驗證程式碼顯示不出來

 

問題:

最近在做這方面的網頁~需要用到圖形驗證~
但是在網路上找到的原始碼圖片都顯示不出來~
不知道哪位可以幫我解答一下~
要能夠正常顯示圖形驗證的圖片並檢查是否正確~

 

解決方案:

 

  • 沒有掛gd2
    • 在你的php.ini裡找到;extension=php_gd2.dll
    • 把前面的分號刪除
    • 再重新啟動IIS或apache
       
  • 驗證碼用使用有字型的ttf檔
    • 檢查程式是不是有.ttf的字串,如果有就是有使用字型
    • 建議可以換成不使用ttf的程式,如:

<?php
 $img_height = 25;  // 圖形高度
 $img_width = 80;   // 圖形寬度
 $mass = 200;        // 雜點的數量,數字愈大愈不容易辨識

 $num="";              // rand後所存的地方
 $num_max = 6;      // 產生6個驗證碼
 for( $i=0; $i<$num_max; $i++ )
 {
     $num .= rand(0,9);
 }

 Session_start();
 $_SESSION["Checknum"] = $num;  // 將產生的驗證碼寫入到session

 // 建立圖片,定義圖形和文字顏色
 Header("Content-type: image/PNG");
 srand((double)microtime()*1000000);
 $im = imagecreate($img_width,$img_height);
 $black = ImageColorAllocate($im, 0,0,0);         // (0,0,0)文字為黑色
 $gray = ImageColorAllocate($im, 200,200,200); // (200,200,200)背景是灰色
 imagefill($im,0,0,$gray);

 // 在圖形產上黑點,起干擾作用;
 for( $i=0; $i<$mass; $i++ )
 {
 imagesetpixel($im, rand(0,$img_width), rand(0,$img_height), $black);
 }

 // 將數字隨機顯示在圖形上,文字的位置都按一定波動範圍隨機生成
 $strx=rand(3,8);
 for( $i=0; $i<$num_max; $i++ )
 {
      $strpos=rand(1,8);
      imagestring($im,5,$strx,$strpos, substr($num,$i,1), $black);
      $strx+=rand(8,14);
 }
 ImagePNG($im);
 ImageDestroy($im);
?>
 

 

網頁設計 -->找網站銀行

好站推薦:網頁設計除臭襪