PHPフォーム処理

PHPの全グローバル変数$_GETと$_POSTは、フォームデータ(form-data)を収集するために使用されます。

PHP - 簡単なHTMLフォーム

以下の例では、簡単なHTMLフォームが示されています。それは、2つの入力フィールドと1つの送信ボタンを含んでいます:

<html>
<body>
<form action="welcome.php" method="post">
名前: <input type="text" name="name"><br>
Eメール: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

実行例

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

送信されたデータを表示するには、単にすべての変数を出力(echo)するだけで良いです。"welcome.php" ファイルは以下のようです:

<html>
<body>
ようこそ <?php echo $_POST["name"]; ?><br>
あなたのメールアドレスは: <?php echo $_POST["email"]; ?>
</body>
</html>

出力:

ようこそ Bill
あなたのメールアドレスは Bill.Gates@example.com

HTTP GET メソッドを使用しても同じ結果が得られます:

<html>
<body>
<form action="welcome_get.php" method="get">
名前: <input type="text" name="name"><br>
Eメール: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

実行例

"welcome_get.php" は以下のようです:

<html>
<body>
ようこそ <?php echo $_GET["name"]; ?><br>
あなたのメールアドレスは: <?php echo $_GET["email"]; ?>
</body>
</html>

上記のコードは単純ですが、最も重要な内容が省略されています。フォームデータを検証し、スクリプトにバグを避けるために必要です。

注意:PHP フォームを扱う際にはセキュリティに注意してください!

このページにはフォーム検証プログラムは含まれていません。それは、フォームデータの送信と受信方法を示すだけです。

しかし、後の章では PHP フォームのセキュリティを高める方法について説明します!フォームに対する適切なセキュリティ検証は、ハッキング攻撃やスパムメールを防ぐために非常に重要です。

GET に対する POST

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 は非機密データの送信に使用できます。

注釈:パスワードや他の機密情報を GET で送信することは決してできません!

POST をいつ使用しますか?

フォームから POST メソッドで送信される情報他の人には見えません(すべての名前/値は HTTP リクエストのボディに埋め込まれます)そして、送信される情報の量にも制限があります。無制限

さらに、POST はファイルをサーバーにアップロードする際の multi-part 二進方式の高度な機能をサポートしています。

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

ヒント:開発者は、フォームデータを送信する際に POST を好みます。

次に、PHP フォームの安全な処理方法を見てみましょう!