アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記ソースのimage.phpというファイルを作りました。
直接http://url/image.phpでアクセスすると画像が表示されません。

<?
header("Content-Type: image/png");
$image = imagecreate(120,120);
$black = imagecolorallocate($image,0,0,128);
$yellow = imagecolorallocate($image,255,255,0);

imageline($image,10, 60, 110, 60, $yellow);
imagepng($image);
imagedestroy($image);
?>
imagepng($image);を
imagepng($image,"test.png");
に変えたら、正しく同フォルダーにtest.pngが出力され、こちらは問題ないファイルとなっています。今回の処理ではphpを画像ファイルとして扱いたいのですが、
このケースで考えられる原因教えてください。

参考までにtest.htmlに
<html><head><title>test</title>
<img src="image.php"></body></html>

と書いても結果は同じく画像表示が出来ませんでした。

<html><head><title>test</title>
<img src="test.png"></body></html>
では表示出来ます。

A 回答 (4件)

お使いのサーバーは、どこでしょう?


フリースペースだと広告用htmlタグが自動挿入されていたりしませんか?
ブラウザへのphp出力(エラー画像状態)を、一旦画像保存して、そのファイルをテキストエディターで無理矢理開くと、広告用タグが入っていたりします。エラー文が入ってる時も画像としては表示できないので、この方法でエラー内容が解ります。
広告挿入の場合は、そのサーバーでの広告用タグ自動挿入抑止法を調べないとなりません。
サイト設置に関する説明のどこかに書いてあるはずだけど。

この回答への補足

サーバーは使えるネットのvpsサービスということろを使用しており、月額7000円程度です。
したがって、広告が自動挿入されていることはありません。

画像はブラウザーでは下記アイコンになっていて
┌─┐
│×│
└─┘
右クリックを押しても保存出来ない状況です。

補足日時:2009/04/27 13:26
    • good
    • 0
この回答へのお礼

お恥ずかしながら自己解決出来ました。
原因は.HTACCESSの設定で、自動インクルードしている別のPHPがあったのですが、それの一番最後

?>

で閉じた後に改行コードが書かれていたことでした。
>?改行
改行
改行

これにより余計な改行がはき出されており結果として正しく表示がされていませんでした。

回答していただいた皆様ありがとうございました。

お礼日時:2009/04/27 23:02

余計なヘッダーが付加されていたりとか


HTTPヘッダが確認できるアドオンなどでヘッダを確認してみては
Firefox なら Live HTTP Headers があります

この回答への補足

余計なヘッダーが保存した場合のファイルも表示出来なさそうですが、今回は保存したファイルは問題なく、


<?
$image = imagecreate(120,120);
header("Content-Type: image/gif");
imagegif($image);
imagedestroy($image);
?>
ここまで余計なのをとっても表示不可能状況です。
サーバー設定の方になにかしらの問題があるような気がしていますが。。。
>Firefox なら Live HTTP Headers があります
>IEだと余計なヘッダー確認出来ないですよね?↑

補足日時:2009/04/27 13:30
    • good
    • 0

No1です。


なんか勘違いしてました。ごめんなさい。
    • good
    • 0

この記述だと$imageが何か判りませんよね?


$image = "画像の所在パス";
この記述が無いからだと思います。

正しくは、下記のようになるかと
header("Content-Type: image/png");
$image = "画像の所在パス";
$image = imagecreate(120,120);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!