WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:perl(cgi)からperl(cgi)への引数

たけ [MAIL] [WriteDate : Fri Apr 13 09:15:15 2001]

perl(cgi)からperl(cgi)へ引数を渡す方法をご存知の方、
アドバイスください。
exec ("perl sample.cgi?userid=zzz") ;
上記では、うまく行きません。
locationでは、status-barに表示されてしまうので。


andi [WriteDate : Fri Apr 13 09:28:24 2001]

"?"が要らないんじゃないですか?


andi [WriteDate : Fri Apr 13 10:18:13 2001]

多分" "スペースが要ります。

たけ [MAIL] [WriteDate : Fri Apr 13 11:04:39 2001]

andiさん。ありがとうございます。
早速、試してみました。

exec("perl samole.cgi?UserId=mbr000") ;
上記の場合、
Can't open perl script "sample.cgi?UserId=mbr000": No such file or directory
と、なります。(ファイル名として認識しているようです)

exec("perl sample.cgi UserId=mbr000") ;
上記の場合、エラーにはなりませんが、何も受け取れません。

ほかになにか、ありませんか?

ちなみに、受け取り方法は、HTMLからのGETとPOST両方の方法で、
受け取っています。


andi [WriteDate : Fri Apr 13 11:25:53 2001]

$ARGV[0]で受取れると思います。
HTTP経由では無いのでGET/POSTは使えないと思います。


ふじ [URL] [WriteDate : Fri Apr 13 11:31:01 2001]

GET で受け取るには環境変数 QUERY_STRING を参照するのですから、

$ENV{QUERY_STRING} = 'UserId=mbr000';
exec("perl sample.cgi");

これでどうです?

sample.cgi を実行した後に呼び出しもとの CGI に処理を戻したい場合は
exec ではなく system をつかいましょう。


たけ [MAIL] [WriteDate : Fri Apr 13 12:28:56 2001]

andiさん、ふじさん。ありがとうございます。
長く一人で悩んでいたのが、解決しました。
方法1
$ENV{QUERY_STRING} = 'UserId=mbr000';
exec("perl sample.cgi");
ばっちり成功です。
ちなみに今回はsample.cgiに行きっ放しにしたいので、
execを使おうとしました。(ありがとうございます)
方法2
andiさんの$ARGV[0]の方法ですが、日頃Cを使ってますので、
興味があるのですが、面倒でしょうが、
いま少し、送り側と受け側の解析手順をお教え頂けませんか。


回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]