私はこのフォーラムに新しく参加し、今夜から PHP を学んでいます。
フォームを送信したいのですが、次の違いがわかりません:
<form action="page2.php" method="GET">
と
<form action="page2.php" method="POST">
誰でも私を助けてくれますか?
ありがとう。
得る:
役職:
慣例により、HTTP GETは検索フォームに使用され、HTTPPOSTはフォームの変更に使用されます。GETは、その情報を公開されているURLに表示し、そこから変数を照会できます。POSTはその情報を表示しません。セキュリティに関しては、実際には違いはありません。
リクエストが使用される場合GET
、フォームパラメータはURLにいわゆるクエリ文字列でエンコードされます。例えば
www.someemailprovider.com/?login=joe@email.com&password=xxyz
POST
リクエストは、GETリクエストとは異なり、URLではなくHTTPリクエストの本文でフォームパラメータを渡します。
さらに、べきGET
等でありPOST
、サーバーでGETメソッドを呼び出すと、サーバーでは何も変更されませんが、POSTを呼び出すと、サーバーが変更される可能性があり、サーバーに追加のデータが追加される可能性があるため、GETはべき等です。 POSTはそうではありませんが。
ノート
プログラマーとして覚えておくべき主なことは、GETメソッドを使用するようにフォームを定義しても、変更が発生するのを防ぐことはできないということです。GETリクエストを使用して、POSTクエリとほぼ同じことを行うことができます。ブラウザは通常、注文やデータベースへの書き込みなど、変更を引き起こすものにPOSTリクエストが使用されることを期待するようにコーディングされています。GETリクエストは、サーバー上の何にも影響を与えない純粋なクエリに使用する必要があります。したがって、大画面テレビの注文など、サーバーで変更を引き起こす可能性のあるアクションにはGETリクエストを使用しないことを常に忘れないでください。
これらは両方ともHTTPリクエストメソッドであり、PHP専用ではありません。
$_GETはendまたはURLに追加されます。つまり、 http://example.org/?foo=bar次のコマンド を使用してPHPでアクセスします。
$foo = $_GET['foo'];
または$foo= $ _REQUEST ['foo'];
GETは、他の人に見ても構わない情報に使用され、リンクやURLに手動で入力して結果を得ることができます。
$ _POSTはURLに表示されません。通常、フォームの送信後に使用されます。PHPでアクセスするには:
$foo = $_POST['foo'];
または$foo= $ _REQUEST ['foo'];
HTTPリクエストの詳細については、http://www.w3schools.com/tags/ref_httpmethods.aspをご覧ください。