懐かしの変数
懐かしいってところが問題でしょうな…。
メールフォームをちゃんと書く。
<?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キーを押した場合に改行するように指定しているから。