2012-04-26 12 views
2

私は乱数のcaptchaイメージを生成するはずですが、localhostでは正常に動作していますが、私のホスティングではうまく動作しません。誰かが私がどこに間違っているのか教えてくれますか?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()を使って確認してください。 –

+1

'generate.php'画像URLをダウンロードするには' wget'または 'curl'を使います。ヘッダーと結果のバイナリデータを検査します。おそらくエラーメッセージはありますか? (そうでなければerror_reportingを有効にしてログを確認してください) – mario

+0

フォントの 'font.ttf'をスクリプトと同じフォルダにコピーしましたか? –

答えて

1

が文字列helloを使用してスクリプトをテストし、それをフルSYSTを使用してみてください。..

image generated

は問題がPHPフォントを設置することができないということです非常に確信して動作しますEMパス

あなたのスクリプト中のNO先頭のスペースや改行を持っていないことを確認してください

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

を試してみてください。イメージを表示しようとする前に出力されたテキストは、それを失敗させます。

関連する問題