• ベストアンサー

.cgiをhtmlに乗せる方法を教えて下さい。

こんにちわ。cgiのファイルで点検済みのものをhtmlに乗せたいのですが、フレームで乗せるとサーバーテストのときにのってくるのですが、 普通のtdに入れたら出てきませんでした。cgiを乗せるときは何か決まりがあるのでしょうか。どうかよろしくお願いします。

  • CGI
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

インラインフレームを使うと比較的簡単に実現できると思います。 そのCGIをfoo.cgiだと仮定して、表示させたいHTMLの適当な場所に <iframe src="foo.cgi" width="***" height="***" frameborder="0" scrolling="no"></iframe> と書くだけです。widthとheightは表示させる領域の大きさですので適当な値にして下さい。 No.2氏のSSIでもいいのですが、HTMLの拡張子を*.shtmlにしなければいけないとかいろいろと制約が多いですし、使えないプロバイダもありますのでインラインフレームの方が使いやすいと思います。

windws
質問者

お礼

アドバイス有難う御座います。buffalomasaさんの通りに使用してみました、すっきりと表示したい画像が出てきました。うれしかったです。buffalomasaさんの方法だと位置も自由に出すことができてレイアウトもうまくいきそうですね。本当に有難う御座います。

その他の回答 (3)

回答No.4

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による表示文字列を挿入することが出来ます。

windws
質問者

お礼

有難うございます。私の構文の書き方が多分間違っているのでうまくいかないのかもしれません。又試してみたいと思っています。今回皆さんにアドバイス頂き感謝して居ります。質問を締め切ることにしたいと思います、がumasikajiroさんの文も今後参考にさせて勉強させていただきたいと思っています。本当に有難うございました。

windws
質問者

補足

umasikajiroさん有難うございます。今日はコマンドプロンプトの練習をしました。umasikajiroさんの文で試してみたのですが書き方がだめなのかサーバーの画面では思う画像が出てきてくれませんでした。占いを作っているのですが、乱数で7枚の画像が出てそれをhtmlにレイアウトして結果を見るというものです。umasikajiroさんの文の処理のところに占う内容を入れて構文のチェックをしてみて、そこまでは大丈夫だったのですが、サーバーのテスト画面には画像の形に×がついてきます。また取り組んでみたいと思います。有難う御座いました。

回答No.2

普通のHTMLファイルの中で、ページの一部に組み込みたいってことかな? だとしたらSSIでexecするしかないのかも。

windws
質問者

お礼

有難うございます。そうなんです、htmlの部分に実行内容を表示させたいのです。perlを使っているのですが、初心者なのでlowrider_2005さんのアドバイスがあまり理解できていません。手順とするとどのような感じになるのですか?.cgiを作って、htmlに表示させるには。いざ作りはじめてみるとこんがらがってきました。

回答No.1

どういうこと? CGIのソースを掲載したいってこと? それともHTML内にCGIのプログラムを 組み込みたいってこと?

windws
質問者

補足

読んでいただき有難うございます。cgiのプログラムはチェック済みの完全なものです。それをhtmlのページに呼び出すところが解らない為お聞きしました。cgiファイルをhtmlの一部にのせてそれを本体としたページにしたいのですが。説明がへたですみません。どなたかご理解いただいたらアドバイスを下さい。よろしくお願いします。

関連するQ&A

  • CGI

    webサーバーを立ち上げ、test.cgiをブラウザーからアクセスすると ファイルを保存しますか?開きますかと聞かれるのですが、なぜな んでしょうか?

  • CGIとは結局何なのでしょうか。

    CGIの流れというものについて勉強したところ、 サーバがユーザから要求を受けて、 そしてCGIという決まりに従って 外部プログラムを起動し、結果を返してもらい、 またユーザに返す。というものらしいですが… では、結局のところ、CGIという決まりは どういう決まりなのでしょうか。 どなたか教えていただけないでしょうか。

    • ベストアンサー
    • CGI
  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • www.URL 付のcgi を動かす

    URL付のcgi を動かすにはどうしたらいいのでしょう。 つまり2つの独立したサーバーがあり、お互いに 呼び出して実行したい場合、同一サーバーなら通常、 $test= 'home/public_html/cgi/test.cgi'; open (test); print while <test>; ちょっとまどろっこしいんですが、このように実行 できるかと思うんです。 しかし、別のサーバーにあるとこうはかけません。 したがって1行目を $test= 'http://test.com/cgi/test.cgi'; ・・・と書きたいところなのですが、どうもうまく 実行されないようです。 何かいい解決策があれば教えてください。

    • ベストアンサー
    • Perl
  • プルダウンで選択したCGIを動かしたい(ACTION=""をプルダウンで変更するには?)

    プルダウンで選択したCGIを動かしたい(ACTION=""をプルダウンで変更するには?) 以下の <option value="test1.cgi">テスト1  <option value="test2.cgi">テスト2 <option value="test3.cgi">テスト3 <option value="test4.cgi">テスト4 4つのプルダウンメニューを選択して、それぞれ別のCGIを動かすには どうしたらできますか? よかったら教えて下さい。javascriptで出来そうな気がするのですが… <FORM name="testname" method="post" ACTION="/cgi-bin/??????" > <TABLE> <TR><TD> テスト</TD> <TD bgcolor="#FFFFFF"> <SELECT name=""> <option value=""> <option value="test1.cgi">テスト1  <option value="test2.cgi">テスト2 <option value="test3.cgi">テスト3 <option value="test4.cgi">テスト4 </SELECT></TD> </TR> <TR> <TD bgcolor="#cccccc" width="150"> 開始日</TD> <TD bgcolor="#FFFFFF"> <input name="daysS" type="text" size="8"> </TD> </TR> <TR> <TD bgcolor="#cccccc" width="150"> 終了日</TD> <TD bgcolor="#FFFFFF"> <input name="daysE" type="text" size="8"> </TD> </TR> </TABLE> <BR> <INPUT type="submit"name="send"value="開始"> <INPUT type="reset" name="reset" valiu="消去"> </FORM>

  • CGIが動かない

    ActivePerlをインストールし終えたのです。 さらに、自宅サーバのCGI動作はOKにしてあります。 なのに、CGIが動きません。 ※http://www.***********/test.cgi のようにアクセスしてるのですが・・・ OS:Win 2000 Server , AN HTTPD を使用しています。

  • CGI掲示板について

    質問させていただきます。 今、CGI掲示板を設置したいのですがうまくいかず困っています。 ちなみに、設置しようと思ったCGI掲示板は、http://www.kent-web.com/bbs/patio.htmlです。 ここに書いてある通りにパーミッションなどを変更し、http://~~/patio/patiocgi にアクセスするとInternal Server Errorとでてきます。 ちなみに、http://click2.jp/publisher/ssi.htmlのテストCGIや簡単なCGIテストページは普通に動きました。 私のサーバOSはCentOS4.5です。 Internal Server Errorと出ると言う事は、サーバ側の内部エラーだと思うのですがエラーがあるとしたらどこの可能性が高いでしょうか? パーミッションなどは何回も確かめたため多分大丈夫だとは思います。 どなたかご教示いただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIの色変更

    フレームを使って片方に以下のようなプログラムをいれました。 <input type="button" name="col" value="赤" onclick="parent.Frame2.document.bgColor='ff0000'"> というプログラムいれ、もう片方のフレーム内のウインドウの背景色を赤に変更できるようしました。 ですが普通のHTMLファイルなどはちゃんと赤色になるのですが、片方のフレーム内をCGIファイルにしたときだけ何も変化がおこりません。CGIファイルも色変更させるにはどうすればいいのでしょうか?

    • ベストアンサー
    • CGI
  • CGIだとうまくいかない!

    まずは下記ソースをご覧ください。 これを実行させると上下2のフレームができまして、上フレームにある「Jump C」と いうリンクをクリックすると、下フレームが「ccccccccc」というところまでジャンプ するように作りました。 まずは実験版としてCGIでなくPC上でHTMLファイルを作成(main.cgiがmain.htmになる) しました。その時はうまく下フレームの「cccccccc」までジャンプしたのですが、これを CGIに作り直して実行させたところ、何も動作しないままでした。 CGIでもHTML上同様の動きをさせるにはどのようにしたらよろしいでしょうか? どなたかご存知の方いましたら、ご鞭撻のほどお願い致します。 -------------- main.cgi ------------------------------------- <HTML> <HEAD><TITLE>フレームテスト</TITLE></HEAD> <FRAMESET ROWS="20%,*"> <FRAME SRC="top.cgi" NAME="FRAME2"> <FRAME SRC="btm.cgi" NAME="FRAME3"> </FRAMESET> </HTML> -------------- top.cgi ------------------------------------- <HTML> <head> </head> <body> <a href="right_btm.cgi#c" target="FRAME3">Jump C</a> </body> </html> -------------- btm.cgi ------------------------------------- <HTML> <head> </head> <body> <A NAME="#a">aaaaaaaaa<br><br><br><br><br><br><br><br><br> <A NAME="#b">bbbbbbbbb<br><br><br><br><br><br><br><br><br> <A NAME="#c">ccccccccc<br><br><br><br><br><br><br><br><br> <A NAME="#d">ddddddddddd<br><br><br><br><br><br><br><br><br> </body> </html> ------------------------------------------------------------ このCGIを実行すると、

  • CGIの設定で困っています

    FREEのスケジュール表を2つのサーバーに アップいたしました。 一つのサーバーは問題なく作動するのですが、 もう一つのサーバーはエラーが出てしまいます。 CGIファイルにブラウザでアクセスした際の 表示内容は、下記の通りです。 Forbidden You don't have permission to access /test/cgi-bin/history.cgi on this server. -------------------------------------------------- Apache/1.3.12 Server at www.ドメイン名.jp Port 80 です。 CGI、SSIともに使用はできるのですが、 どのように設定すればよろしいでしょうか。 どうか教えてください。よろしくお願いいたします。

    • 締切済み
    • CGI

専門家に質問してみよう