##参考書籍
よくわかるPHPの教科書 PHP7対応版
##他記事リンク
##フォームに入力した内容を取得する
以下は「submit.php」宛に送信するフォームです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="submit.php" method="get">
<label for="my_name">お名前:</label>
<input type="text" name="my_name" maxlength="255">
<input type="submit" value="送信する">
</form>
</body>
</html>
送信されてきたデータを受け取るときには、name属性を指定して取得します。例えば名前の入力欄の値を取得するときには、以下のように記述します。
$_GET['my_name'];
※上記のformのmethodがGETのため。POSTの時には$_POSTを使う
しかし入力欄に「<」と「>」で囲まれた値がある場合、それをHTMLとして受け取ってしまい、画面に正しく表示されません。
そのため、うけとった値のHTMLタグの効果を打ち消すためにhtmlspecialchars関数を使います。
htmlspecialchars($_GET['my_name'], ENT_QUOTES);
実際に取得して出力するには以下のように記述します。
お名前: <?php print(htmlspecialchars($_REQUEST['my_name'], ENT_QUOTES)); ?>
##ラジオボタンの値を取得する
以下は「submit.php」宛に送信するフォームです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="submit.php" method="post">
<p>性別:
<input type="radio" name="gender" value="male">男性/
<input type="radio" name="gender" value="female">女性
</p>
<input type="submit" value="送信する">
</form>
</body>
</html>
ラジオボタンの場合も同様に、name属性を指定して取得をします。
性別:
<?php
print(htmlspecialchars($_POST['gender'], ENT_QUOTES));
?>
※しかし、取得されるのはタグに囲まれている値ではなく、valueの値なので注意が必要です。
##チェックボックスの値を取得する
以下は「submit.php」宛に送信するフォームです。
複数選択可能なチェックボックスなどをformで作成する場合には、必ず「[]」という記号をname属性に付与してください。そうすることで、PHP側で取得した時に取得した値を配列として扱うことができ、複数の値を扱えます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="submit.php" method="post">
<p>ご予約希望日(複数選択可)</p>
<p>
<input type="checkbox" name="reserve[]" value="1/1">1月1日<br>
<input type="checkbox" name="reserve[]" value="1/2">1月2日<br>
<input type="checkbox" name="reserve[]" value="1/3">1月3日<br>
</p>
<input type="submit" value="送信する">
</form>
</body>
</html>
name属性を取得する時には、「[]」は省略します。
取得した値は自動的に配列になります。
ご予約日:
<?php
foreach($_POST['reserve'] as $reserve) {
print(htmlspecialchars($reserve, ENT_QUOTES) . ' ');
}
?>