フォームのデータを受け取る

フォーム

  • ソフトウェアの操作画面(ユーザインターフェース)で、利用者からの入力を受け付ける要素(の集合)のことを指す

フォームのデータを受け取る

  • POSTメソッドで送信されたデータは、特別な配列「$_POST」に格納されています
  • 例では「@」マークが付加されていますが、これは初回のアクセス時に「$_POST」が存在しないことによるエラーメッセージの表示を回避するためのものです
  • 「$_SERVER['PHP_SELF']」は、現在表示中のURLが格納されたサーバー変数で、action属性に指定することで現在表示中のページにデータを送信します
  • $_SERVER['PHP_SELF']にはクロスサイト・ス クリプティング(XSS脆弱性が存在しますから、サーバーにアップして実行する場合にはこの選択はしません
  • 練習段階で同一画面上で確認するのみの場合は「action=""」で記述します(このとき@も削除します。)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>フォームのデータを受け取る</title>
</head>
<body>
<?php
// 入力内容を表示する
print '入力内容:'.$_POST['text1'];
?>
<form method="POST" action="">
<table>
 <tr>
  <td><input type="text" name="text1"></td>
  <td><input type="submit" value="送信" name="sub1"></td>
 </tr>
</table>
</form>
</body>
</html>


  • 送信後


計算プログラムをつくる
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>計算プログラム</title>
</head>
<body>
<form method="POST" action="">
<input type = "text" name = "txtA"> + 
<input type = "text" name = "txtB"> = 計算結果 
<br>
<input type="submit" value="計算">
</form>
<br>
<?php
  $a = $_POST['txtA'];
  $b = $_POST['txtB'];
  $c = $a + $b;
  print ('計算結果:' . $c);
?>
</body>
</html>

ラジオボタンの値を取得

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ラジオボタンの値を取得する</title>
</head>
<body>
<form method="POST" action="">
<dl>
<dt>性別:</dt>
<dd>
<input type="radio" name="gender" value="男性" checked>男性
<input type="radio" name="gender" value="女性">女性
</dd>
</dl>
<input type="submit" value="送信">
</form>
<br>
<?php
  print ('性別:' . htmlspecialchars($_POST['gender'], ENT_QUOTES));
?>
</body>
</html>