用GD2函數產生4位數的驗證碼為什麼圖片顯示不出來呢?
S.L
S.L 2017-08-21 20:38:54
0
1
1278

<?php
session_start();
header("content-type:image/png");        / /設定建立影像的格式
$image_width=70;                      //設定影像寬度
$image_height
srand(microtime()*100000);               //設定隨機數的種子
for($i=0;$i<4;$i ){                  //循環輸出一個4位元的隨機數
   $new_number.=dechex(rand);#15) }
$_SESSION[check_checks]=$new_number;    //將取得的隨機數驗證碼寫入到SESSION變數中     

#$num_image=imagecreate($image_width,$image_
#$num_image=imagecreate($image_width,$image_
## 畫布
imagecolorallocate($num_image,255,255,255);          //設定畫布的顏色
for($i=0;$i<strlen($)變數中的驗證碼
   $font=mt_rand(3,5);                                        //設定隨機字元所在位置的X座標
   $y=mt_rand(1,$image_height/4);                    //設定為位元在位置中的Y710,00000 $ ,mt_rand(0,200));       //設定字元的顏色
   imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color);     水平##}
imagepng($num_image);                  //產生PNG格式的圖片
imagedestroy($num_image) #o

S.L
S.L

全部回覆(1)
风豆丁

你這段程式碼裡有很多錯誤。

你先把 header("content-type:image/png");註解掉,把錯誤處理掉再說吧。

一般 header設定在產生圖片 imagepng() 函數上面就好了,這樣可以方便調錯。

  • 回覆 這段程式碼是教學裡複製過來的,應該不會錯。照你的方法也不行,出現了這樣的錯誤: ( ! ) Notice: Undefined variable: new_number in D:wamp64wwwlianxichecks.php on line 7 Call Stack # Time Memory Function Location 1 0.0007 244832 {main}( ) ...checks.php:0
    S.L 作者 2017-08-22 23:22:07
  • 回覆 for循環前給$num_number一個初始值,另外$_SESSION下標必須是字串。改成下面這樣就好了。 session_start(); header("content-type:image/png"); //設定建立影像的格式 $image_width=70; //設定圖片寬度 $image_height=18; //設定圖片高度 srand(microtime()*100000); //設定隨機數的種子 $new_number = ''; for($i=0;$i<4;$i++){ //迴圈輸出一個4位的隨機數 $new_number .= dechex(rand(0,15)); } $_SESSION['check_checks']=$new_number; //將取得的隨機數驗證碼寫入到SESSION變數中 $num_image=imagecreate($image_width,$image_height); //建立一個畫布 imagecolorallocate($num_image,255,255,255); //設定畫布的顏色 for($i=0;$i<strlen($_SESSION['check_checks']);$i++){ //迴圈讀取SESSION變數中的驗證碼 $font=mt_rand(3,5); //設定隨機的字體 $x=mt_rand(1,8)+$image_width*$i/4; //設定隨機字元所在位置的X座標 $y=mt_rand(1,$image_height/4); //設定隨機字元所在位置的Y座標 $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)); //設定字元的顏色 imagestring($num_image,$font,$x,$y,$_SESSION['check_checks'][$i],$color); //水平輸出字符 } imagepng($num_image); //產生PNG格式的圖片 imagedestroy($num_image); //釋放圖片資源
    风豆丁 作者 2017-08-23 22:23:48
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板