2017-03-19 30 views
1

PHP 7を実行している新しいサーバーにサイトを移動したばかりです。元々はPHP 5.4でした。以下のURLは、キャプチャのように、それのコードで画像を表示する必要があります。PHPの動的イメージが正しく表示されない

http://appreviewhelper.com/static/captcha/GkK9yEiaw6

をそのURLがヒットした場合、次のコードが実行される:

$code=rand(1000,9999); 
$code = (string)$code; 
$_SESSION["code"]=$code; 

$im = imagecreate(50, 24); 
$bg = imagecolorallocate($im, 238, 238, 238); //background color blue 
$fg = imagecolorallocate($im, 85, 85, 85);//text color white 
imagefill($im, 0, 0, $bg); 
imagestring($im, 5, 5, 5, $code, $fg); 

header("Cache-Control: no-cache, must-revalidate"); 
header('Content-type: image/png'); 
header("Content-Disposition: inline; filename=captcha.png"); 
imagepng($im); 

imagedestroy($im); 

exit(); 

それは罰金で働いていました古いサーバー私はPHP GDライブラリがインストールされ、モジュールが有効になっていることを確認しました。それを何度も確認しましたが、まだ小さな空白の画像が得られます。何か案は?

おかげ

編集:時間と時間後、私は問題を発見した、ので、私は自分自身を答えるよ

array(12) { 
    ["GD Version"]=> 
    string(5) "2.1.1" 
    ["FreeType Support"]=> 
    bool(true) 
    ["FreeType Linkage"]=> 
    string(13) "with freetype" 
    ["GIF Read Support"]=> 
    bool(true) 
    ["GIF Create Support"]=> 
    bool(true) 
    ["JPEG Support"]=> 
    bool(true) 
    ["PNG Support"]=> 
    bool(true) 
    ["WBMP Support"]=> 
    bool(true) 
    ["XPM Support"]=> 
    bool(true) 
    ["XBM Support"]=> 
    bool(true) 
    ["WebP Support"]=> 
    bool(true) 
    ["JIS-mapped Japanese Font Support"]=> 
    bool(false) 
} 
+0

私のために働くようです、私はPHP 7.1.1を実行しています。私は内部にコードを持つ小さな画像を得ます。エラーログには何が書いてありますか? – xlordt

+0

それは私のためにも動作し、7.1を実行しているようです。 例:[リンク](http://i66.tinypic.com/1984i_th.png) –

+0

これはPHP 5.4でも動作します。 –

答えて

0

:以下は、このサイトからgd_infoからの出力は()です。クライアントはDropboxを使って私とファイルを共有しました。どうやら、DropboxはファイルをUnicodeに変換したようです。したがって、イメージ生成コードを持つファイルは、イメージが出力される前にBOMを送信していたため、イメージが壊れて見えます。ファイルのエンコーディングをUTF-8に変更すると、問題が解決しました...

閲覧して回答した時間のおかげです。

関連する問題