$_POST ~ポストデータ~

htmlのフォーム要素で入力した値を$_POST['パラメータ名']で取得する。

<form method="POST" action="送信先">
  <input name="name" type="text" />
  <input name="email" type="text" />
  <input value="送信" type="submit" />
</form>

送信先

<?php 
echo $_POST['name'];
echo $_POST['email'];
// $_POSTはテキストボックスのname属性をキーとする連想配列
 ?>
エスケープ処理

ユーザー入力値に関してはhtmlspecialchars関数でエスケープ処理を行う。記述量が多いのでユーザー定義関数でシンプルに呼び出すのがベター。

<?php
function e($str, $charset = 'UTC-8') {
  return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, $charset, false);
}
?>
<?php 
echo e($_POST['name']);
 ?>

エスケープの種類(htmlspecialcharsの第2引数)

  • ENT_QUOTES ダブルクォート、シングルクォートともに変換する
  • ENT_HTML5 HTML5として処理
複数の値を持つ要素にアクセスする

name属性の末尾に[]をつけることで、複数の値を配列として取得できる。

<input type="checkbox" name="fruit[]" value="apple" />
<input type="checkbox" name="fruit[]" value="banana" />
<input type="checkbox" name="fruit[]" value="mango" />
<?php echo $_POST['fruit']; ?>
=> ['apple', 'mango']