同一CGI上でキーワードを渡すには?
[上に]
[前に]
[次に]
さっち
1999/05/21(金) 09:32:46
こんにちは。
1つのcgiのなかで
fname.cgi?keyword
と渡し、if($ARGV[0] eq "keyword")
と、しているのですがうまくいきません。
どうしてでしょうか?
無責任官庁
1999/05/21(金) 13:36:40
一つのCGIの中で・・・
と言うことがどういうコトを示すのかは分かりませんが、
@ARGVは引数を受け取るものなので、
例えば、system("hoge.cgi keyword");
とした場合、hoge.cgiでkeywordを受け取る時に使用します。
(hoge.cgiとkeywordの間は、空白ですよ)
もし、Location: /cgi-bin/fuga.cgi?keyword
のような使い方をするならば、
受け取る変数名は、$ENV{'QUERY_STRING'}
になります。
#前者の方のコト言ってるのかなぁ・・・
#ちょっと不安・・・(^_^;)
さっち
1999/05/21(金) 17:17:21
自分でもよくわかっていないのですが、
とほほさんのソースプログラムを参考に
しているのですが・・・。
とほほさんのやり方は、どういう形なの
ですか?
無責任官庁
1999/05/21(金) 20:02:57
すみません、私もあまりそれ使ったコトないんで、テキトウな事
言ってしまったようです。
(詳細はこのへん→http://www.tohoho-web.com/wwwcgi4.htm#CgiTemplate)
調べた結果、@ARGVでもうまくいくハズなのですが・・・
$ARGV[0]の中身を表示させてみたりして、チェックしてはどうでしょう。
keywordの文字列に、"+"が含まれてたりはしないですよね・・・?
たこすけ
1999/05/21(金) 20:47:03
フォームからMETHOD=GETで呼び出してるとか・・・?
さっち
1999/05/24(月) 11:08:13
METHOD=POST ACTION='fname.cgi?keyword'とフォームで
指定しているのですが(+は入れていません)。
なにか宣言など足りないのでしょうか?
B-Cus
1999/05/24(月) 12:29:21
URLとスクリプトのソースを公開するのが一番てっとり早いです。
さっち
1999/05/24(月) 13:28:15
B-Cusさんの言う通りURLとソースを公開します。
臨時で作ったページなのでその他何も有りません。
http://wwws.icd.slsi.sony.co.jp/~satiko_h/index2.html
ソースファイルは、とほほさんのを変更、削除した
ものになっています。でも、よくわかっていないの
で、変なプログラムになっていると思いますが・・・。
B-Cus
1999/05/24(月) 16:25:53
> wwws.icd.slsi.sony.co.jp
IPアドレス引けないです。
このホストってファイアーウォールの中にあるんじゃないですか?
B-Cus
1999/05/24(月) 16:54:03
まぁ、そんなことより、
> ソースファイルは、とほほさんのを変更、削除した
> ものになっています。でも、よくわかっていないの
> で、変なプログラムになっていると思いますが・・・。
これがそもそもの間違いですね。わかっていないと自覚しているなら、
まずは数行のテストプログラムで動かしましょう。
#!/usr/local/bin/perl
print "Content-type: text/plain\n\n";
print "ARGV is ...\n";
print join(",",@ARGV)."\n\n\n";
print "QUERY_STRING is ...\n$ENV{QUERY_STRING}\n\n";
print "STDIN is ...";
print <STDIN>;
さっち
1999/06/09(水) 08:45:49
[[解決]]
試してみた結果、エラーは違うところで発生していたようです。
(というか、なんとか動きました。)
色々と助けてくださりありがとうございました。
[上に]
[前に]
[次に]