プロが教える店舗&オフィスのセキュリティ対策術

現在以下のタグを使用して検索フォームの設置を試みています。

<FORM action="patio.cgi?" method="get">
<INPUT name="mode=find&word" size="25">
<INPUT type="submit" value="検索">
</FORM>

しかしこの内容で検索ボタンを押すと、=や&がエンコードされた状態になってしまいました。

現状:patio.cgi?mode%3Dfind%26word=

希望:patio.cgi?mode=find&word=

このようにするためにはどうしたらいいのでしょうか?詳しい方おられましたら教えていただけると幸いです。

A 回答 (2件)

それはまったく正常ですよ。


QUERY_STRINGで値を渡すときは、URLに使えない文字はURLエンコードしなければなりませんので、
mode=find&word という文字列は、mode%3Dfind%26word になるのが正しい動作です。
 ためしに、googleで検索欄に、mode=find&word と入れれば、q=mode%3Dfind%26word という文字がURL欄にあるはず。

QUERY_STRING が、patio.cgi?mode=find&word=であって欲しいなら・・・逆に考えるのはおかしいが・・・・
[name]=[value]&[name]=[value]となるためには
mode="find"
word=""
ですから、
<input type="hidden" name="mode" value="find">
<input type="text" name="word" value="" size="25">
とかになります。
 なお、QUERY_STRINGでデータ保渡す場合、
<FORM action="patio.cgi?" method="get">
ではなくて、
<FORM action="patio.cgi" method="get">
です。標準入力で渡すなら
<FORM action="patio.cgi?" method="post">
です。
    • good
    • 0
この回答へのお礼

お礼が遅れてすみませんでした。お礼をしたつもりがされていないままだったのに今気がつきました。かなり細やかなご指示でしたので大変勉強になりました。また何かありましたらお知恵をお貸しいただけると助かります。ありがとうございました。。

お礼日時:2010/03/16 20:36

nameというのは文字通り名前です。



<FORM action="patio.cgi?" method="get">
<INPUT name="mode" value="find" type="hidden">
<INPUT name="word" size="25">
<INPUT type="submit" value="検索">
</FORM>
    • good
    • 0
この回答へのお礼

お礼が遅れてすみませんでした。お礼をしたつもりがされていないままだったのに今気がつきました。簡潔な内容ですごくわかりやすかったです。本当に助かりました。また何かありましたらお知恵をお貸しいただけると嬉しいです。ありがとうございました。。

お礼日時:2010/03/16 20:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!