- ベストアンサー
htmlから、ファイル、もしくはCGI実行結果を表示
htmlのページを開いたときに、部分的にCGIの実行結果、もしくはファイルの中身を表示することは出来ないでしょうか。「インラインフレームを設けて・・・」という意味ではなく、たとえばページを開くごとにある行の数字だけ数字が増えていく、といったカウンターのようなことが出来るようにしたい。 そういうCGIスクリプトを作っているので、CGIをまったく使わないというのは無しで、またSSIは使わないこと前提でお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>SSIを使わないテキストカウンタをつくりたい なるほど、そういうことでしたか。 ><script type="text/javascript" src="****/count.cgi?***=***"></script> >という風にHTMLに組み込んであります。 >こうすることでCGIは動いてくれるものなのでしょうか。 CGI側に一工夫必要です。 Content-Typeをapplication/x-javascriptとします。 詳しくは参考URLをご覧下さい。 私の環境(Win2k+Apache2)ではContent-Type:text/plainでも動くようですが。
その他の回答 (5)
- JF1Msf
- ベストアンサー率20% (18/88)
No.3です。 $count_file = "counter.txt"; open(CNT_FILE, "$count_file"); $count = <CNT_FILE>; chomp($count); close(CNT_FILE); として$countにカウンタを取得し、 あなたは$count番目だよ!と出力すれば、 テキストのカウンターが作れると思うんですが... もちろん、この後に$countをインクリメントして、counter.txtファイルに出力しておいてください。
お礼
ありがとうございます。 お礼遅れてしまいました。 いえ、これではページ全体がcgiによる出力になってしまいますよね。他の方にも使ってもらえるようなテキストカウンタを配布したいので、これではちょっと無理なんです・・・^^; でも無事解決しましたので、またよろしくおねがいします。
- the845t
- ベストアンサー率33% (246/743)
><script type="text/javascript" src="****/count.cgi?***=***"></script> >という風にHTMLに組み込んであります。 >こうすることでCGIは動いてくれるものなのでしょうか。 あ、そういう方法もありましたね。 動くと思いますよ。 実際やってみるのが一番でしょう。
お礼
ありがとうございます。 お礼遅れてしまいました。 ぶじ作ることが出来ました^^
- JF1Msf
- ベストアンサー率20% (18/88)
まず、例えばindex.htmlという名前のhtmlファイルを用意します。 <html> <head> <title></title> <meta HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.****.**.jp/cgi-bin/output_html_file.cgi"> </head> <body> </body> </html> 次に、例えばoutput_html_file.cgiというような名のスクリプトをPerlで書いて、HTMLファイルを出力し、いかにもindex.htmlに書かれているかのように見せることができるでしょう。多くの部分はprintなどでそのままベタに出力し、カウンターの部分だけ工夫すれば、簡単にできると思います。
お礼
ありがとうございます。 それは結局はCGIでカウントする部分以外も出力するという形になるんですよね? もしそうだったら、それは避けたいです。 テキストカウンタを作りたいと思っているので^^;
- mrumesuke
- ベストアンサー率45% (254/557)
CGIでHTML文書を動的に出力すればいいと思うのですが、それではだめなのでしょうか?
お礼
ありがとうございます。SSIを使わないテキストカウンタをつくりたいので、それは避けたいです^^;
- the845t
- ベストアンサー率33% (246/743)
HTMLファイルでSSIを使わずCGIを実行できないので無理でしょう。 拡張子がhtmlというのであれば、.htaccessを弄ってhtmlという拡張子のCGIファイルであれば可能でしょう。 他にカウント部分をJavaScriptで吐き出すようにすれば、 それも可能かと。 CGIで.jsファイルにカウントを記入するとか。 もっとも<img>なり<iframe>なりでそのCGIを呼び出す必要があります。
お礼
実を言うと、SSIを使わないテキストカウンタをつくろうと思っているんです。 他のテキストカウンタを参考にしたところ、カウントの表示部分(呼び出し)にjavascriptを使っていましたが、原理がイマイチわかりませんでしたが、 <script type="text/javascript" src="****/count.cgi?***=***"></script> という風にHTMLに組み込んであります。 こうすることでCGIは動いてくれるものなのでしょうか。
お礼
ありがとうございます。 お礼遅れてしまいました。 無事作ることが出来ました^^