• ベストアンサー

HTMLフォームPOSTでの引数の渡し方

HTMLのフォームでPOST送信を利用しているのにURIに引数を指定するのは良いのでしょうか? <form name="form" method="post" action="form.php?abd=123"> のようになっているサイトを見かける事があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

機能としては標準ですが、運用的にはあまりよろしくないですね すなおに <input type="hidden" name="abc" value="123"> で埋め込めば済む話です ポイントとしては2点、キーが競合する場合がある 一つは$_REQUESTで参照する場合、phpinfo()でcore情報のvariables_orderで 指定されている順の優先順位になります 通常はGPCSなのでGET>POST>クッキー>セッションです もちろん$_GETや$_POSTで明示的に参照すれば問題はありません もう一つはmethodをGETにして、パラメータでも同じキーを渡すと 判断がつかないのでブラウザの解釈によります。 いずれにしろ中途半端になるので、できればデータの受け渡し方法は 一つにまとめた方が無難です。

noname#213288
質問者

お礼

詳しくご説明ありがとうございます。 納得いたしました。 URIのパラメータ渡しは、GET参照用だと思い込んでましたので formでURIにて利用したことありませんでした。 お恥ずかしいかぎりです。 でも、今までどおりhiddenでやっていきたいと思います。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

構いませんよ。データを渡す方法は ・QUERY_STRING を使用する。フォームのデフォルト  URLの一部なので直接書くときはURLエンコードが必要  文字数制限がある。 ・標準入力 SDIN いわゆる method="post" ・PATH_INFO  URLの一部?より前に書くことが出来る。Wikiや新聞社のページ http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/takuwave?action=http_referrer_check /takuwave がPATH_INFO、action=http_referrer_check がQUERY_STRING

noname#213288
質問者

お礼

ありがとうございます。 長年、思い込みで駄目だと思ってました。

関連するQ&A