• 締切済み

普通のhtmlからcgiを呼び出す方法

なんとか解らないなりにいろいろ勉強しているものです。 よく、普通のHTMLにカウンターなどをつける際に <IMG src="/cgi-local/it-mark.cgi?itservicemark"> とか言うようなかんじでしています。 自分もこのような形でカウンターではなく画像をhtmlに貼りたいのですが、うまく行きません(下記参照) //////////////////////////////////////////// #!/usr/local/bin/perl $itservice_mark = int(itservicemark); # Content-typeヘッダ出力 print "Content-type:text/html\n\n"; # HTML出力 print << "END_OF_HTML"; <IMG src="../image2/common/common-name3.gif" border="0"> END_OF_HTML ///////////////////////////////////////////// このような具わいで作っても普通のhtmlはcgiをよんでくれないのでしょうか?誰か宜しくお願い致します。

みんなの回答

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.2

<IMG>はファイルハンドル名です。 イメージファイルなんだとぱっと見て解るようにIMGと名づけましたが、 ファイルをopenしたときに記述した名前とおなじであれば、何でも構いません。 (IMG,"画像のパス") binmodeは、ファイルをバイナリデータで読み書きするときに必要なものです。(Windowsのみですが…) STDOUTは"Standard Out"のことで、標準出力という意味で、 この場合ブラウザですね。 インターネットでの標準出力装置?がブラウザですから。 こんなところですが、納得していただけたでしょうか? また何かありましたらいつでもどうぞ(^^)

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

CGIの呼び出しは可能ですが、現在のソースですとHTMLに展開すると <IMG src="<IMG src="../image2/common/common-name3.gif" border="0">"> ↑こんな感じになってしまいませんか? GIF画像を書き出す場合、 open(IMG,"画像のパス") print "Content-type: image/gif\n\n"; binmode(IMG); binmode(STDOUT); print <IMG>; close(IMG); という風になります。 jpgならprint "Content-type: image/jpg\n\n"; ですね。 print "Content-type:text/html\n\n"; は、「テキスト形式のHTMLファイル」という意味なので、ここでは不適当です。

aeic
質問者

お礼

教えて頂き本当にありがとうございました。 とても勉強になりました。 ところで書きのカッコぶぶんですがどのようなものが貼るのかちょっと解りません。 STDOUTとはどのような意味あいなのでしょうか? IMGはイメージファイルのことだと思うのですが、 binmode(IMG); binmode(STDOUT); print <IMG>; close(IMG); どうぞ宜しくお願い致します。