TECH I.S.

PHPフォーム処理


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>

ユーザーが上記のフォームに入力して送信ボタンをクリックすると、フォーム データが処理のために「welcome.php」という名前のPHPファイルに送信されます。フォームデータはHTTP POSTメソッドで送信されます。

送信されたデータを表示するには、すべての変数をエコーするだけです。 「welcome.php」は次のようになります。

<div><html> <body> Welcome <?php echo $_POST["name"]; ?><br> Your email address is: <?php echo $_POST["email"]; ?> </body> </html></div>

出力は次のようになります。

<div> Welcome John Your email address is john.doe@example.com </div>

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」は次のようになります。

<div><html> <body> Welcome <?php echo $_GET["name"]; ?><br> Your email address is: <?php echo $_GET["email"]; ?> </body> </html></div>

上記のコードは非常に単純です。しかし、最も重要なことが欠けています。悪意のあるコードからスクリプトを保護するには、フォームデータを検証する必要があります。


PHPフォームを処理するときはセキュリティを考えてください!

このページにはフォームの検証は含まれていません。フォームデータを送信および取得する方法を示しているだけです。

ただし、次のページでは、セキュリティを考慮してPHPフォームを処理する方法を示します。ハッカーやスパマーからフォームを保護するには、フォーム データを適切に検証することが重要です。


GET 対 POST

GETとPOSTの両方が配列を作成します(例: array( key1 => value1, key2 => value2, key3 => value3, ...))。この配列は、キーと値のペアを保持します。キーはフォーム コントロールの名前で、値はユーザーからの入力データです。

GETとPOSTはどちらも$_GETと$_POSTとして扱われます。これらはスーパーグローバルです。つまり、スコープに関係なく、常にアクセスできます。また、特別なことをしなくても、任意の関数、クラス、またはファイルからアクセスできます。

$_GETは、URLパラメータを介して現在のスクリプトに渡される変数の配列です。

$_POSTは、HTTP POST メソッドを介して現在のスクリプトに渡される変数の配列です。


GETを使用する場合

GETメソッドでフォームから送信される情報は、誰にでも見える(すべての変数名と値がURLに表示されます)。 GETには、送信する情報量にも制限があります。制限は約2000文字です。ただし、変数はURLに表示されるため、ページをブックマークすることは可能です。これは、場合によっては便利です。

GETは、非機密データの送信に使用できます。

注:パスワードやその他の機密情報の送信にGETを使用しないでください。


POSTを使用する場合

POSTメソッドでフォームから送信される情報は、他人には見えず(すべての名前/値はHTTP要求の本文に埋め込まれます) および送信する情報量について制限はありません

さらに、POSTは、ファイルをサーバーにアップロードする際のマルチパート バイナリ入力のサポートなど、高度な機能をサポートします。

ただし、変数はURLに表示されないため、ページをブックマークすることはできません。


開発者は、フォームデータの送信にPOSTを好みます。


次に、PHPフォームを安全な方法で処理する方法を見てみましょう。




プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細