• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cgiからcgiを呼び出す方法)

cgiからcgiを呼び出す方法

このQ&Aのポイント
  • perlのcgi製作を始めて7日目の素人で恐縮ですが、cgi Aに対して新たにcgi Bを作成し、cgi Bからcgi Aを呼び出したいですが、うまくいきません。
  • 試した例として、exec関数や<!--#exec cgi-->タグを使用しましたがうまく動作しません。
  • Apacheをローカルにインストールし、cgi Bの認証フォームでコードを入力してDB内のデータと一致した場合にcgi Aを呼び出したいですが、正常に動作しません。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> exec("./cgi A.cgi") > <!--#exec cgi="./cgi A.cgi"--> これ、何を意図したものですか? ./cgi ってなんです? この書式だと、 ./cgi(カレントディレクリのcgiというコマンド)に A.cgi を引数にして実行しようとします。おそらく、cgiなんて実行ファイルや命令は無いでしょうから失敗するでしょう。 方法としては次のものが考えられます。 ・正しく A.cgi を実行する PCでApache使ったことないので、どうなるか確認取ってませんが、 A.cgi が単独で実行できるなら exec("A.cgi") ; あるいは、Perlコマンドを指定して exec("perl A.cgi") ; A.cgiにパラメータを渡すなら、仕様にしたがって。 あと、httpのヘッダが重複しないように注意。 ・ location や refresh を使って、 A.cgiのURLへリダイレクトする。

crescentmonkey
質問者

お礼

コメントありがとうございました。 リダイレクトというキーワードで新たな知識を得ることが出来ました。 また、状況に変化があったので新たな質問を立てさせていただきました。

crescentmonkey
質問者

補足

記述がへたくそですみません。 ご認識通り正しくはexec("A.cgi") ;です。パラメタは無しです。 単純にA.cgiに制御を渡したいのみです。 具体的にはexec("./test.cgi");と記述しておりましたが、 試しにexec("test.cgi");で実行したところ、 IEが待機中のまま返ってこなくなりました。 あと、 >httpのヘッダが重複しないように注意。 >・ location や refresh を使って、 A.cgiのURLへリダイレクトする。 この点を掘り下げて教えていただけると幸いです。 宜しくお願いします。

その他の回答 (1)

回答No.2

system('A.cgi'); または `A.cgi`; このことでしょうか? HTML、CGI、Perl、SSIはそれぞれ別物ですから、 それぞれの区別を付けて置いた方が良いです。

crescentmonkey
質問者

お礼

コメントありがとうございました。 状況に変化があったので新たな質問を立てさせていただきました。

crescentmonkey
質問者

補足

記述がへたくそですみません。 ご推測の通りです。 何かアドバイスを頂けると幸いです。 宜しくお願いします。

関連するQ&A