submitがCGIに渡らない

[上に] [前に] [次に]
te 1999/09/14(火) 10:56:52
今名前を入力するとファイルを検索しにいき、結果を表示する
というCGIを作っているのですが、1つ分からないことがあります。

フォームには名前入力テキストボックスと送信ボタンがあるのですが
名前を入力した後、そのままリターンを押すと、CGIの引数にsubmit
が渡らず該当件数0が帰ってきます。
ボタンを直にクリックしたり、フォーカスを送信ボタンに移して
からリターンを押すとうまくCGIが機能してくれ、CGIの引数にも
ちゃんとsubmitが渡っています。
環境はIIS+ActivePerlなんですが、Linunx+Apacheではそのような
症状が見受けられません。

これは何が原因なのでしょう?またどうやったらこれを回避できる
のでしょうか?

とうりすがり 1999/09/14(火) 13:56:16
気合。

B-Cus 1999/09/14(火) 15:26:18
「submitが渡る」というのは具体的に何を指しているんでしょうか?

> 気合。
2点。

ワイ 1999/09/14(火) 16:00:42
<HTML><HEAD><TITLE>test.</TITLE></HEAD>
<BODY>
<FORM ACTION="http://www.tohoho-web.com/cgi/wwwperl.cgi" METHOD="post">
<INPUT TYPE="text" NAME="test1"><INPUT TYPE="submit" NAME="ok1" VALUE="12345"><INPUT TYPE="submit" NAME="ok2" VALUE="67890">
</FORM>
</BODY></HTML>
…というHTMLを用意します。
"12345"と書かれたボタンを押すとCGIにはok1=12345が渡されます。しかし、ok2=67890は送信されません。
"67890"と書かれたボタンを押すとCGIにはok2=67890が渡されます。しかし、ok1=12345は送信されません。
そしてテキストボックスでEnterを押して送信した場合は両方とも送信されません。
…こういうことですよね?>te氏
で、これをどうするか、ですけど…わかりません(汗)

> 気合。
不覚にも笑ってしました。とりあえず貴方の勝ち。8点。

te 1999/09/14(火) 17:35:30
分かりにくい質問をしてしまいました。すいません。
もうすこし詳しく書きたいと思います。

<FORM ACTION="cgi-bin/abc.cgi" METHOD="get">
<INPUT NAME="NAME" TYPE="text">
<INPUT NAME="submit1" TYPE="submit" VALUE="送信">
</FORM>

というHTMLがあります。NAMEというパラメータはcgiがファイルを
検索する時のキーとなります。
テキスト入力後、送信ボタンを
押した場合は、
  abc.cgi?NAME=hoge&submit1=hege
とCGIに引数がわたされ、正常に機能し、検索結果も表示されます。

しかし、テキストボックスに入力してそのままリターンを押すと
  abc.cgi?NAME=hoge
と引数がわたされるのですがCGIでの検索が同じ検索キーにも
関わらず該当者なしで返ってくるのです。
CGIではNAMEに渡ってくる文字列しか使用しないのですが、
なぜかsubmit1がcgiの引数として渡されないとCGIが正常に
機能しない、ということがいいたかった訳です。

B-Cus 1999/09/14(火) 18:25:21
> CGIではNAMEに渡ってくる文字列しか使用しないのですが、
これは本当にそうなんでしょうか? *本当に* NAMEしか見ていない
なら、submit1のあるなしで動作が変わるはずはないと思うんですが。
それとも、IISならではの罠があるんだろうか?

おじさん 1999/09/15(水) 10:39:11
abc.cgi?NAME=hoge
のときhogeのあとに\nが入ってたりして…
chompで改行コード取りしたらどうなりますか。

[上に] [前に] [次に]