【PHP】フォーム送信された値を受け取る方法

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でフォーム送信された値を受け取る方法の基本的な解説です。適切な方法でデータを受け取り、安全に処理することが重要です。