2011-01-26 10 views
0

フォームの送信中にパラメータを取得するURLエンコードが可能かどうかを確認しようとしています。私は、URLが動的にPHPでのURLエンコード

ex: www.google.com?query=urlencode($query) 

を内蔵している。しかし、私は、フォームと送信ボタンを使用していた場合にどのように私は、機能URLエンコードを適用しないURLエンコードが使用されているいくつかのリソースを見てきました。

<html> 
     <body> 
       <form action="send.php" method="get"> 
       <input type="input" name="method" value="" /> 
       <input type="submit" name="submit" value="submit"/> 
       </form> 
     </body> 
</html> 
+0

*あなたの質問*を誤解していない場合、なぜあなたはurlencode()を使用しないのですか? – Eray

+0

以下のコメントでは、実際にエンコードされた文字でテストすることはありません。スペース。それを試してみてください。 "application/x-www-form-urlencoded"はデフォルトのエンコーディングです。クエリ部分全体( "?"で始まる)、個々の部分値のみのエンコーディングは期待できません。また、urlencodeとrawurlencodeの間に微妙な(歴史的な)差異があることに注意してください。 – initall

答えて

3

ブラウザがあなたのためにそれらをurlencodeします。グーグルで「&」と検索すると、URLに「q =%26」と表示されます。

+0

ねえ、私はまだパラメータとして渡したものを見ることができます。何も変わっていません。 localhost/test.php?opt1 = check_test&subt = subtは、私が – macha

2

これは、あなたがすることを求めるなら、あればそれは、最新のブラウザでは、デフォルトで行われていることに注意してください

<html> 
     <body> 
       <form action="send.php" method="get" enctype="application/x-www-form-urlencoded"> 
       <input type="input" name="method" value="" /> 
       <input type="submit" name="submit" value="submit"/> 
       </form> 
     </body> 
</html> 

=「アプリケーション/ x-www-form-urlencodedで」のenctypeを使用することを検討して、ブラウザによって行われますあなたはenctypeを指定していません。

+0

ちょっと提出したときに得たものですが、私はまだパラメータとして渡されたものを見ることができます。何も変わっていません。 localhost/test.php?opt1 = check_test&subt = subtは、私が提出するときに得られるものです – macha

+1

もちろん、あなたが入力したものについては、&、#、/などのような特殊文字、文字はまったく変更されません – PLuS