懐かしの変数

懐かしいってところが問題でしょうな…。

メールフォームをちゃんと書く。

<?php $now = date("H時i分s秒"); ?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>現在時刻とメールフォーム</title>
<link rel="stylesheet" href="1002.css" type="text/css">
<!--[if lte IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lte IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
</head>
<body>
<p>ただいまの時刻→<?php echo($now); ?></p>
<section>
<h1>入力フォーム</h1>
<form name="input_form" action="thanks.php" method="post">
<table>
<tr>
<th>氏名(name)</th>
<td><input name="name" type="text" size="40"></td>
</tr>
<tr>
<th>メールアドレス(e-mail)</th>
<td><input name="email" type="email" size="40"></td>
</tr>
<tr>
<th>性別(gender)</th>
<td><input name="gender" type="radio" value="男性">男性<br>
<input name="gender" type="radio" value="	女性">女性</td>
</tr>
<tr>
<th>好きな色(favorite color)</th>
<td><select name="color">
<option value="">選んでください</option>
<option value="赤"></option>
<option value="青"></option>
<option value="緑"></option>
<option value="黄"></option>
</select>
</td>
</tr>
<tr>
<th>趣味(hobby)</th>
<td><input name="hobbies[]" type="checkbox" value="読書">読書<br>
<input name="hobbies[]" type="checkbox" value="旅行">旅行<br>
<input name="hobbies[]" type="checkbox" value="スポーツ">スポーツ
</td>
</tr>
<tr>
<th>お問い合わせ(enquiry)</th>
<td><textarea name="enquiry" cols="60" rows="3"></textarea></td>
</tr>
</table>
<input type="submit" value="送信(submit)">
</form>
</section>
</body>
</html>

ここからが変数大活躍…なんだけど、時間下さい(泣)。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>ありがとうございました</title>
</head>
<body>
<section>
<h1>入力フォーム</h1>
<p>情報の入力、ありがとうございました。</p>
<table>
<tr>
<th>氏名(name)</th>
<td><?php echo(htmlspecialchars($_REQUEST["name"], ENT_QUOTES)); ?></td>
</tr>
<tr>
<th>メールアドレス(e-mail)</th>
<td><?php echo(htmlspecialchars($_REQUEST["email"], ENT_QUOTES)); ?></td>
</tr>
<tr>
<th>性別(gender)</th>
<td><?php echo(htmlspecialchars($_REQUEST["gender"], ENT_QUOTES)); ?></td>
</tr>
<tr>
<th>好きな色(favorite color)</th>
<td><?php echo(htmlspecialchars($_REQUEST["color"], ENT_QUOTES)); ?></td>
</tr>
<tr>
<th>趣味(hobby)</th>
<td><?php echo( htmlspecialchars(implode( "、", $_REQUEST["hobbies"]), ENT_QUOTES)); ?></td>
</tr>
<tr>
<th>お問い合わせ(enquiry)</th>
<td><?php echo(  htmlspecialchars($_REQUEST["enquiry"], ENT_QUOTES)); ?></td>
</tr>
</table>
</section>
</body>
</html>
<?php $now = date("H時i分s秒"); ?>

の応用で、
htmlspecialchars($_REQUEST[" "], ENT_QUOTES)
は変数化できる。
というところまでは気が付くのに…
どう書いたら正しく変数として受け取られるかで手が止まる。

  • $nowの部分は、$_REQUESTの中身にそれぞれ置き換えできる。

これは何とかクリア。
さて、
dateをなんて置き換えたらいいのか、でパニック。
ここでテキスト見るのはcheatかしら。

共通項のまとめとくくり方に秘訣が。

  • date部分はhtmlspecialchars

あとはそのまま、

  • ("H時i分s秒")部分は($_REQUEST[" "], ENT_QUOTES)

でOKだなんてorz
…苦手意識ってこんなに簡単なことに対して、エベレスト級の壁を作るのか。

<?php $name = htmlspecialchars($_REQUEST["name"], ENT_QUOTES);
$email = htmlspecialchars($_REQUEST["email"], ENT_QUOTES);
$gender = htmlspecialchars($_REQUEST["gender"], ENT_QUOTES);
$color = htmlspecialchars($_REQUEST["color"], ENT_QUOTES);
$hobbies = htmlspecialchars(implode( "、", $_REQUEST["hobbies"]), ENT_QUOTES);
$enquiry = nl2br(htmlspecialchars($_REQUEST["enquiry"], ENT_QUOTES));
 ?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>ありがとうございました</title>
</head>
<body>
<section>
<h1>入力フォーム</h1>
<p>情報の入力、ありがとうございました。</p>
<table>
<tr>
<th>氏名(name)</th>
<td><?php echo($name); ?></td>
</tr>
<tr>
<th>メールアドレス(e-mail)</th>
<td><?php echo($email); ?></td>
</tr>
<tr>
<th>性別(gender)</th>
<td><?php echo($gender); ?></td>
</tr>
<tr>
<th>好きな色(favorite color)</th>
<td><?php echo($color); ?></td>
</tr>
<tr>
<th>趣味(hobby)</th>
<td><?php echo($hobbies); ?></td>
</tr>
<tr>
<th>お問い合わせ(enquiry)</th>
<td><?php echo($enquiry); ?></td>
</tr>
</table>
</section>
</body>
</html>

お問い合わせのところだけ、ちょっと違うのは、

$enquiry = nl2br(htmlspecialchars($_REQUEST["enquiry"], ENT_QUOTES));

nl2brを記述することで、
入力フォーム内でENTERキーを押した場合に改行するように指定しているから。