PHP $_POST

PHP の $_POST スーパーグローバル変数は、HTMLフォームからPOSTメソッドで送信された情報を表す。$_POST は連想配列であり、name で指定して値を参照できる。

<?php
  echo htmlspecialchars($_POST["last_name"]);
?>

自動グローバル変数

$_POST は自動グローバル変数(スーパーグローバル)である。自動グローバル変数とは、リクエスト情報を取得・操作するための変数であり、PHPが自動的にリクエスト情報などを解析し、必要な情報を設定する。

PHP で自動グローバル変数を参照するために、通常は global キーワードを使って変数を宣言する必要がある。しかし、自動グローバル変数を参照する場合は、global キーワードによる変数宣言は不要である。

$_POST と $_GET の違い

HTMLフォームからPOSTメソッドで送信された値を $_POST 変数配列で取得できるのに対して、HTMLフォームからGETメソッドで送信された値は $_GET 変数配列で取得できる。

サンプル

<form action="/php/post.php" method="post">
  <label for="fn">First name</label>
  <input type="text" id="fn" name="first_name">
  <lable for="ln">Last name</label>
  <input type="text" id="ln" name="last_name">
  <input type="submit">
</form>
<table>
  <caption>$_POST</caption>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value</th>
    </tr>
  </thead>
  <tbody>
<?php
  foreach ($_POST as $key => $value) {
    echo '<tr><td>' . htmlspecialchars($key) . '</td><td>' . htmlspecialchars($value) . '</td></tr>';
  }
?>
  </tbody>
</table>

上記のPHPは次のように表示される。

$_POST
Key Value

関連記事