PHPスーパーグローバル$ _GETと$ _POSTは、フォームデータを収集するために使用されています。
PHP - シンプルなHTMLフォーム
以下の例は、2つの入力フィールドを持つ単純なHTMLフォームと送信ボタンが表示されます。
例
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
»実行例 ユーザーは上記のフォームに記入し、送信ボタンをクリックすると、フォームデータは、名前のPHPファイルへの処理のために送られる"welcome.php" 。 フォームデータはHTTP POSTメソッドで送信されます。
提出されたデータを表示するには、単純にすべての変数をエコー可能性があります。 "welcome.php"次のようになります。
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
出力は次のようなものが考えられます。
Welcome John
Your email address is [email protected]
同じ結果は、HTTPのGETメソッドを使用して達成することができます。
例
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
»実行例 そして"welcome_get.php"次のようになります。
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
上記のコードは非常に簡単です。 しかし、最も重要なことがありません。 あなたは、悪意のあるコードからスクリプトを保護するために、フォームデータを検証する必要があります。
PHPのフォームを処理する際に、セキュリティを考えてみて!
このページには、任意のフォーム検証を含んでいない、それはちょうどあなたが送信し、フォームデータを取得する方法を示しています。
ただし、次のページでは、セキュリティを考慮してPHPのフォームを処理する方法を紹介します! フォームデータの適切な検証はハッカーやスパマーからフォームを保護することが重要です!
POST対GET
GETとPOSTの配列を作成し、両方の(例えばarray( key => value, key2 => value2, key3 => value3, ...) この配列は、キーがフォームコントロールの名前であり、値はユーザからの入力データであるキー/値のペアを保持します。
GETとPOSTの両方が$ _GETと$ _POSTとして扱われます。 あなたは特別な何かをすることなく、任意の関数、クラス、またはファイルからそれらにアクセスすることができます - これらは、関係なく、スコープの、常にアクセス可能であることを意味し、スーパーグローバルです。
$ _GETはURLパラメータで現在のスクリプトに渡された変数の配列です。
$ _POSTは、HTTP POSTメソッドで現在のスクリプトに渡された変数の配列です。
GETを使用する場合は?
GETメソッドでフォームから送信された情報は、(すべての変数名と値をURLに表示されている) すべてのユーザーに表示されます。 また、送信する情報の量には限界がありますGET。 制限が約2000文字です。 変数はURLに表示されているのでしかし、それはページをブックマークすることが可能です。 これは、いくつかのケースで役立ちます。
非機密データを送信するために使用することができるGET。
Note:パスワードやその他の機密情報を送信するために使用すべきではありませんGET!
POSTを使用する場合は?
POSTメソッドでフォームから送信された情報は、 他人には見えない (all names/values are embedded within the body of the HTTP request)と、送信する情報の量には制限がありません。
サーバにファイルをアップロードしながらさらにPOSTは、マルチパートバイナリ入力のサポートなどの高度な機能をサポートします。
変数はURLに表示されていないので、しかし、それはページをブックマークすることはできません。
開発者は、フォームデータを送信するためのPOSTを好みます。
次に、我々はPHPで安全な方法を形成して処理することができますどのように見ることができます!