PHPでフォーム送信された値を受け取る方法について解説します。この記事では、GETメソッドとPOSTメソッドを使ってフォームから送信されたデータを受け取る方法を紹介します。
GETメソッドでデータを受け取る
GETメソッドを使用してフォームを送信すると、データはURLにクエリパラメータとして追加されます。PHPでは$_GETスーパーグローバル変数を使用してこれらの値を取得できます。
<?php
// フォームから送信された'name'フィールドの値を取得
$name = $_GET['name'];
echo "こんにちは、" . htmlspecialchars($name) . "さん!";
?>
この例では、nameという名前のフィールドに入力された値を受け取り、表示しています。htmlspecialchars関数を使うことで、クロスサイトスクリプティング(XSS)攻撃を防ぐためにHTMLエスケープを行っています。
POSTメソッドでデータを受け取る
POSTメソッドを使用すると、データはHTTPリクエストのボディ部分に含まれます。PHPでは$_POSTスーパーグローバル変数を使ってデータを取得します。
<?php
// フォームから送信された'name'フィールドの値を取得
$name = $_POST['name'];
echo "こんにちは、" . htmlspecialchars($name) . "さん!";
?>
この例も同様に、nameフィールドの値を受け取り、XSS攻撃を防ぐためにエスケープしてから表示しています。
フォームの例
GETメソッドとPOSTメソッドを使用したフォームのHTML例は以下の通りです。
GETメソッドを使用するフォーム
<form action="your_script.php" method="get">
<label for="name">名前:</label>
<input type="text" id="name" name="name">
<input type="submit" value="送信">
</form>
POSTメソッドを使用するフォーム
<form action="your_script.php" method="post">
<label for="name">名前:</label>
<input type="text" id="name" name="name">
<input type="submit" value="送信">
</form>
注意点
- セキュリティ: $_GETや$_POSTで取得したデータは信頼できないため、必ずバリデーションとサニタイジングを行ってください。htmlspecialchars関数の使用はその一例です。
- メソッドの選択: GETメソッドはデータがURLに表示されるため、セキュリティに配慮が必要なデータの送信にはPOSTメソッドを使用するのが一般的です。
まとめ
以上が、PHPでフォーム送信された値を受け取る方法の基本的な解説です。適切な方法でデータを受け取り、安全に処理することが重要です。