2009-07-31 14 views
1

HTML形式でエンコードされたURLとGETメソッドを使用してパラメータを渡すと、URLエンコードされたパラメータが削除されるのはなぜですか?URLが混在しているときにGET変数が渡されない

セットアップ:

<form action="process.php?hello=world" method="GET"> 
<input type="text" name="foo" value="bar"> 
<input type="submit"> 
</form> 

結果:変数helloprocess.phpに認識されません。

この悪い習慣ですか?

これはPHPが処理する方法ですか、あるいはブラウザが要求を送信する方法に関連していますか?他の言語で同じ問題がありますか?

+0

私が間違っていると私を修正しますが、これはフォームのURLになりません: 'process.php?hello = world?foo = bar'(2つの疑問符を含む)? – Tim

答えて

7

はい、それはうまくいかないため、悪い習慣です。

あなたが「非表示のフォーム入力」に渡したい場合は、非表示のフォーム要素を使用する必要があり、その後:

:彼のコメントで状態rezzifよう

<input type="hidden" name="hello" value="world" /> 

を、あなたはそのような& POSTをGET混在させることができます

<form action="/something?foo=bar" method="POST"> 
<input type="text" name="baz" /> 
</form> 

一般的に、私は2つを混ぜるのを避けます。私はフォームアクションでGETパラメータを持つのが奇妙だと思っています。

+3

ただし、投稿と投稿を混在させることはできます。 – rezzif

関連する問題