このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

imgタグでcgiを実行

発言者:TAGU
( Date Sunday, May 28, 2000 21:50:49 )


はじめて投稿します

現在、CGIの使えるちょっと重いサーバー(仮にA)と、
CGIの使えない軽いサーバー(仮にB)の両方を使っています

こちらの過去ログで、Bに置いたHTMLファイルのimg srcタグから
Aに置いたCGIを使う方法を見つけたのですが、うまく出来ません
単純に画像を送り返すだけのCGIならうまく行くのですが、
データファイルを読み込み、tableタグを使って表を作るような
CGIだとリンク切れの表示が出ます

そもそも このimg srcタグを使ったやり方でHTMLのソースを
送ったり、受け取ったりさせることは出来るのでしょうか?
ちなみに失敗したCGIは

#!/usr/bin/perl
print <<EOH;
<TABLE BORDER=10 CELLPADDING=4 BORDERCOLOR="#FFFFFF">
<TR ALIGN=CENTER BGCOLOR="#009966">
<TH><FONT COLOR="#FFFFFF">表</FONT></TH> </TR></TABLE>
Location: http://dokosoko.com/home/gazo.gif

EOH

です
Content-type文とか付けたり(text/htmlやimg/ など)もしましたが
ダメでした

何か分かる方おられたらよろしくお願いいたします

Weasel さんからのコメント
( Sunday, May 28, 2000 22:20:43 )

> データファイルを読み込み、tableタグを使って表を作るような
> CGIだとリンク切れの表示が出ます

img srcの中にテーブルタグを入れるという意味でしょうか?
つまり表示されるHTMLは

<img src="
<TABLE BORDER=10 CELLPADDING=4 BORDERCOLOR="#FFFFFF">(以下略)"

にしたいということでしたら、正しく表示されません。


多分、行いたいことは「サーバーAにて出力されるHTMLに、サーバーBの
CGIで書き出されるHTMLを含んで表示させたい」ということだと
思います。通常、このようなことにはSSIを使用するのですが、
多分サーバーAでCGIが利用できないのであれば、SSIも無理でしょう。

JavaScriptを利用すればできるかもしれませんが、一番てっとり
早いのは、ダイナミック(動的)なHTMLは全てサーバーBにて出力
されるようにすることだと思います。


最後に、
> Location: http://dokosoko.com/home/gazo.gif
をヒアドキュメントに入れて、正しく動作しますか?
私の経験だと
print "Location: http://dokosoko.com/home/gazo.gif\n\n";
としなければ無理だったような気がしますが、、、

山田 さんからのコメント
( Sunday, May 28, 2000 22:23:39 )

基本的にIMGは、重たいようです。
ちなみにIMGって、画像しか送れないのでは?


Weasel さんからのコメント
( Sunday, May 28, 2000 23:21:21 )

サーバーAとサーバーBを間違えました。

サーバーA:CGIの使えるちょっと重いサーバー
サーバーB:CGIの使えない軽いサーバー

でしたね。失礼しました。

TAGU さんからのコメント
( Monday, May 29, 2000 00:29:10 )

Weasel さん、山田さん さっそくありがとうございます

>多分、行いたいことは「サーバーAにて出力されるHTMLに、サーバーBの
>CGIで書き出されるHTMLを含んで表示させたい」ということだと
> 思います。
その通りです

>ダイナミック(動的)なHTMLは全てサーバーA(書き換えました)にて出力
>されるようにすることだと思います。
やはりダイナミックな部分を含むHTMLファイルはサーバーAに置くしかないですか

ありがとうございました

最後のヒアドキュメントの件ですが、ちゃんと画像が表示されました
サーバーによるのでしょうか?
私がよくやる失敗では、最後のEOHの後に改行が無かったりしますが...
そんな簡単なことで無ければすみません