- ベストアンサー
.cgiをhtmlに乗せる方法を教えて下さい。
こんにちわ。cgiのファイルで点検済みのものをhtmlに乗せたいのですが、フレームで乗せるとサーバーテストのときにのってくるのですが、 普通のtdに入れたら出てきませんでした。cgiを乗せるときは何か決まりがあるのでしょうか。どうかよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
インラインフレームを使うと比較的簡単に実現できると思います。 そのCGIをfoo.cgiだと仮定して、表示させたいHTMLの適当な場所に <iframe src="foo.cgi" width="***" height="***" frameborder="0" scrolling="no"></iframe> と書くだけです。widthとheightは表示させる領域の大きさですので適当な値にして下さい。 No.2氏のSSIでもいいのですが、HTMLの拡張子を*.shtmlにしなければいけないとかいろいろと制約が多いですし、使えないプロバイダもありますのでインラインフレームの方が使いやすいと思います。
その他の回答 (3)
- umasikajiro
- ベストアンサー率67% (545/803)
SSIについては http://www.tohoho-web.com/wwwssi.htm 辺りをご覧いただくとして、、 SSIが使えない場合でフレーム以外で表示するなら 逆転の発想でこんなのはどうですか? htmlファイルを test.htm cgiを read.cgiだとすると test.htmのソース中1行目に<!--CgI-rEaD-oK--> と記述(例です ユニークな文字列であればOK) CGIによる表示をさせたい部分に<!--CgI-inCl--> と記述(同上) read.cgiの中身は #!/usr/local/bin/perl print "Content-type:text/html\n\n"; $p_info=$ENV{'PATH_INFO'}; $p_info =~ s/\/|\\//g; # /や\を削除(悪戯防止の意味も有) open(READ,$p_info)||&error(__LINE__); $read1=<READ>; unless($read1 =~ s/<!--CgI-rEaD-oK-->//) {&error(__LINE__);}# 読み込むfileの1行目に<!--CgI-rEaD-oK-->が無ければエラー print $read1; while(<READ>) { if(s/<!--CgI-inCl-->//) {print ; print "<pre>".`env`."</pre>";# 例ですよ # 文中に<!--CgI-inCl--> を見つけたときの処理 #この部分にCGIによって表示するものを記述 next; } print ; } close READ; exit; ############### sub error { print $_[0]; exit; } __END__ 同じ階層にread.cgiとtest.htmを設置して http://****/~****/read.cgi/test.htm でアクセスします。 この場合 $ENV{'PATH_INFO'} には test.htm と言う文字列が入りまして 結果的にhtmlの中にCGIによる表示文字列を挿入することが出来ます。
お礼
有難うございます。私の構文の書き方が多分間違っているのでうまくいかないのかもしれません。又試してみたいと思っています。今回皆さんにアドバイス頂き感謝して居ります。質問を締め切ることにしたいと思います、がumasikajiroさんの文も今後参考にさせて勉強させていただきたいと思っています。本当に有難うございました。
補足
umasikajiroさん有難うございます。今日はコマンドプロンプトの練習をしました。umasikajiroさんの文で試してみたのですが書き方がだめなのかサーバーの画面では思う画像が出てきてくれませんでした。占いを作っているのですが、乱数で7枚の画像が出てそれをhtmlにレイアウトして結果を見るというものです。umasikajiroさんの文の処理のところに占う内容を入れて構文のチェックをしてみて、そこまでは大丈夫だったのですが、サーバーのテスト画面には画像の形に×がついてきます。また取り組んでみたいと思います。有難う御座いました。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
普通のHTMLファイルの中で、ページの一部に組み込みたいってことかな? だとしたらSSIでexecするしかないのかも。
お礼
有難うございます。そうなんです、htmlの部分に実行内容を表示させたいのです。perlを使っているのですが、初心者なのでlowrider_2005さんのアドバイスがあまり理解できていません。手順とするとどのような感じになるのですか?.cgiを作って、htmlに表示させるには。いざ作りはじめてみるとこんがらがってきました。
- cocodoco5656
- ベストアンサー率19% (38/192)
どういうこと? CGIのソースを掲載したいってこと? それともHTML内にCGIのプログラムを 組み込みたいってこと?
補足
読んでいただき有難うございます。cgiのプログラムはチェック済みの完全なものです。それをhtmlのページに呼び出すところが解らない為お聞きしました。cgiファイルをhtmlの一部にのせてそれを本体としたページにしたいのですが。説明がへたですみません。どなたかご理解いただいたらアドバイスを下さい。よろしくお願いします。
お礼
アドバイス有難う御座います。buffalomasaさんの通りに使用してみました、すっきりと表示したい画像が出てきました。うれしかったです。buffalomasaさんの方法だと位置も自由に出すことができてレイアウトもうまくいきそうですね。本当に有難う御座います。