- ベストアンサー
execを使ってCGIを呼び出すには?
execを使ってCGIを呼び出したいのですが、どうやっても表示されません。 CGI自体を開くと、しっかりと表示されるのですが、shtmlで開くと、htmlの表示だけしか出ないのです。 たくさん調べたのですが、もうお手上げです。 もしわかる方がいましたら教えてください。 よろしくお願いします。 初心者ですので、お手柔らかに。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- #exec cgi="**.cgi"をCGIページで表示する
#exec cgi="**.cgi" を使って、全ページが同じように表示されるようにしたのですが、 掲示板等のCGIページではなぜか表示されず、ソースを見てみると <!--#exec cgi="**.cgi"--> がそのまま表示され、ただコメントとして扱われていました。 普通のHTMLファイルと同じように CGIでも**.cgiファイルを表示したいのですが、どうすればいいのでしょうか よろしくお願いします。
- ベストアンサー
- Perl
- SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません
SSI初心者の者です。 参考書(CGIプログラミング入門/翔泳社)を見ながらCGIとSSIの勉強をしてるのですが、SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません。 本には前者はPerlスクリプトで後者はCGIスクリプトの場合に使うって書いてあるのですが、この2つってどう違うのですか? 前後の文脈から察するにCGIスクリプトは『print "Content-Type: text/html"』があって、 Perlスクリプトはこれが無いものと読み取れるのですが そうなのでしょうか? 初心者向けに御回答していただけますよう、よろしくお願いいたします。
- ベストアンサー
- CGI
- 「 <!--#exec cgi="***.cgi" --> 」が表示されません
「main.cgi」というファイルを作り、単純にHTMLを表示するだけのCGIファイルを作成しました。 こんな感じ ------------main.cgi------------ #!/usr/local/bin/perl print "Content-type:text/html\n\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title></title> </head> <body> <略> </body> </html> EOM __END__ -------------------------------- それで、ほかのHTMLファイルに <!--#exec cgi="main.cgi" --> と入力してそのページを見てみると、 [an error occurred while processing this directive] 上の文章が表示されていました。 どうすれば「main.cgi」の内容を表示することができるのでしょうか? よろしくお願いします。
- ベストアンサー
- Perl
- SSI で #exec 以外で Perl-CGI を実行する方法は?
最近 CGI に興味をもち Perl を始めました。 簡単なサンプルを無料サーバーにアップロードして cgi だけを 直接実行すると問題なく実行されます。 ですが SSI の #exec を使って HTML ソースに <!--#exec cgi="/cgi-bin/sample.cgi" --> と記述してページを開くと [an error occurred while processing this directive] と表示されてエラーになりました。 無料サーバーは infoseek で CGI/SSI は使えると書かれていたので 試してみました。それでもう一度確認の為に読んで見ると『#exec』は セキュリティ強化のため利用できないことが判明しました。 http://help.www.infoseek.co.jp/isweb/20602.html#7 質問内容: (1)CGI/SSI は使えるが #exec は使えない状況でどうやって Perl-CGI を HTML ソースに記述して実行すればよいのか? (2)CGI は cgi-bin に置きパーミッションを 755 に設定しています。 設定は infoseek さんの指示通りです。他に設定すべき点ありますか? (3)Perl-CGI の1行目ではちゃんと『#!/usr/local/bin/perl』と記述しています。 こちらも infoseek さんの指示通りです。 Perl の記述で何か気をつけるべき点はありますか?バグ以外で。 (4)HTML ソースの拡張子は shtml にしています。 SSI を使うにはサーバーが対応していれば拡張子を変えるだけで使えるのですか? 今回の質問は Perl-CGI を HTML ソースに記述して実行する?には どうすべきかをお聞きしたいです。infoseek さんの情報は次のリンクです。 http://help.www.infoseek.co.jp/isweb/20601.html またネット検索していたら次のページを発見しました。 http://cocohome.hp.infoseek.co.jp/ssi/ ここの人は私と同じ infoseek で SSI 入門を書いています。 なぜこの方は SSI の #exec が使えるのでしょうか? この辺も知りたいです。 分かる方お願いします。 教えて下さい。
- ベストアンサー
- CGI
- exec cgi ="aaa.cgi" を有効にする方法
<!--#exec cgi="./aaa.cgi" --> を記述したshtmファイルからcgi を呼び出そうとすると スクリプト './test6.cgi' を実行できませんでした: Win32 エラー コード = 2 と表示されて実行できません。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpiis/iishelp/iis/htm/core/iiregwww.asp を参考に、レジストリを書き換えても出来ません。 どう設定すれば実行できるようになるのでしょうか? IIS5.0(w2000pro) + ActivePerl
- ベストアンサー
- CGI
- shtmlに埋め込むCGIファイルのDLについて
shtmlファイル内に埋め込んだ<!--"exec cmd="./***.cgi"-->なんですが、 正常に実行されれば、この場所には実行結果しか返りませんが、 DLツールやその他行為で、SHTMLファイルをSSIの実行なしに落とすことはできりでしょうか? 要は、shtml内に埋め込んだ「***.cgi」などのファイル名を取得されないか、 という不安があるのです。
- ベストアンサー
- CGI
- リンク元を調べるCGIの作り方で悩んでいます
はじめまして。Perl暦1ヶ月の者です。 自分のサイトのリンク元を調べるCGIを設置しようと思いますがどんな方法があるでしょうか。 私が調べた方法は、 1.CGI+SSIを利用 2.CGI+インラインフレームを利用 ですが、1.は各ページに <!--#exec cgi="○○.cgi"--> を入れてCGIを起動させるわけですが、全ページが.shtmlとなってしまい抵抗を感じます。.htm → .shtmlと変わることにより当分検索順位が下がるかもしれません。 それで2.を試しました。通常ページ page1.htm にインラインフレームで○○.cgiを埋め込み、ここでカウンターを表示させるとともにログを取得しようと思ったのです。しかしHTTP_REFERERが取得してくれるリンク元はあくまで「page1.htm」ですので役に立ちません。 最も一般的な方法はどのようなものでしょう?詳しい方よろしくお願いいたします。m(_"_)m *できればコードを丸ごと教えていただけると助かります。 ↓作成の条件です↓ ・一般ページはあくまで.htm にしたい。 ・レンタルサーバー屋はSSIは.shtmlと言っている。 ・リンク元一覧は一般ページには表示しない。 ・全ページの外部リンク元を知りたい。
- ベストアンサー
- Perl
- ssi をたくさん使っても大丈夫?
index.shtml でたとえば100くらい<!--#exec cgi="***.cgi" -->を使ったします。そしたら、やはり表示するまでの時間はかなりおそくなるのでしょうか? どのくらいの数にとどめるべきなのでしょうか?
- ベストアンサー
- レンタルサーバ・ASP
- SSIを使ってCGIを呼び起こしたいのですが
index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。
- ベストアンサー
- CGI
- <!--#exec cmdについて
みなさん はじめまして 本日はよろしくお願い致します 現在、HPを持ってましてページ内に ランダムリンクを貼っております コマンドは以下のようにしております <!--#exec cmd="./random.cgi"--> もちろん、random.cgiの中には リンクするURLを何個か書いていて、 同じフォルダに放り込んでいます。 ちょっと問題がありまして。。 えと、HPを何個も持っていまして 全HPの各フォルダにrandom.cgiを入れているのですが 更新の時などが非常に、厄介なんです^^; HPを追加した時など、全フォルダの random.cgiを更新してUPする事に・・ そこで、1つ上の階層にフォルダを作り そこにrandom.cgiを放り込んで そこを変更すれば全部変わるようにしたいのです 現在、同じフォルダにいれてますので <!--#exec cmd="./random.cgi"-->でいいのですが 違うフォルダにrandom.cgiを入れた場合 <!--#exec cmd="/home/アカウント/public_html/random.cgi"--> このようなパスで動くと思ったのですが 動きませんでした・・・^^; もちろん、random.cgiの場所をhttp://でも書いてみたのですがダメでした。。 これは、動かないモノなのでしょうか もし、ご存知の方がいらっしゃいましたら なにぶん、よろしくお願い致しますm(_ _)m PS /home/アカウント/public_html これは、今使ってるサーバー屋さんの決まってる パスの書き方です。
- ベストアンサー
- CGI
補足
hanabutakoさん 回答、ありがとうございます。 どうやら、ローカルでやっている段階のため、表示されないようです。 これでは、いくら、どこをいじっても無理ですよね。 勉強中なので、今後はもっと勉強いていきたいと思います。 ありがとうございました。