- ベストアンサー
※ 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を呼び出したいですが、正常に動作しません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 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へリダイレクトする。
その他の回答 (1)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
回答No.2
system('A.cgi'); または `A.cgi`; このことでしょうか? HTML、CGI、Perl、SSIはそれぞれ別物ですから、 それぞれの区別を付けて置いた方が良いです。
質問者
お礼
コメントありがとうございました。 状況に変化があったので新たな質問を立てさせていただきました。
質問者
補足
記述がへたくそですみません。 ご推測の通りです。 何かアドバイスを頂けると幸いです。 宜しくお願いします。
お礼
コメントありがとうございました。 リダイレクトというキーワードで新たな知識を得ることが出来ました。 また、状況に変化があったので新たな質問を立てさせていただきました。
補足
記述がへたくそですみません。 ご認識通り正しくはexec("A.cgi") ;です。パラメタは無しです。 単純にA.cgiに制御を渡したいのみです。 具体的にはexec("./test.cgi");と記述しておりましたが、 試しにexec("test.cgi");で実行したところ、 IEが待機中のまま返ってこなくなりました。 あと、 >httpのヘッダが重複しないように注意。 >・ location や refresh を使って、 A.cgiのURLへリダイレクトする。 この点を掘り下げて教えていただけると幸いです。 宜しくお願いします。