2012-04-26 63 views
2

我有這個代碼應該生成隨機數的captcha圖像,它在本地主機上正常工作,但不在我的主機上,任何人都可以幫忙嗎?有人能告訴我我哪裏錯了嗎?imagejpeg();沒有生成主機服務器上的圖像,在本地主機上正常工作

  <?php 
session_start(); 
header('Content-type: image/jpeg'); 

$text= $_SESSION['secure']; 

$font_size =30; 
$image_width= 110; 
$image_height=40; 

$image=imagecreate($image_width,$image_height); 
imagecolorallocate($image, 255, 255, 255); 
$text_color = imagecolorallocate($image, 0, 0, 0); 


for($x=1; $x<=30; $x++){ 
$x1 = rand(1,100); 
$x2 = rand(1,100); 
$y1 = rand(1,100); 
$y2 = rand(1,100); 
imageline($image, $x1, $x2, $y1, $y2, $text_color); 
} 

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $text); 
imagejpeg($image); 
?> 

然後我包括包含在一個新的HTML文件,在那裏我有我的形式,並呼籲像這樣上面的代碼文件:

<img src="generate.php"/> 
+0

您是否檢查過以確保您的服務器安裝了gd庫?使用phpinfo()來檢查。 – 2012-04-26 19:17:40

+1

使用'wget'或'curl'下載完整的'generate.php'圖片url。檢查標題和生成的二進制數據。也許有錯誤信息? (否則啓用error_reporting,並檢查日誌。) – mario 2012-04-26 19:18:25

+0

您是否將字體'font.ttf'複製到與腳本相同的文件夾中? – 2012-04-26 19:17:26

回答

1

測試腳本用繩子hello,它工作

image generated

非常肯定的問題是PHP不能位於字體..嘗試使用全SYST EM路徑

嘗試

$font = dirname (__FILE__) . "/verdana.ttf" ; 
if(!is_file($font)) 
{ 
    die("Missing Font"); 
} 
0

確保你有你的腳本沒有前導空格或換行符。在嘗試顯示圖像之前輸出的任何文本都會導致失敗。

相關問題