「ユーザが選択した値をPOSTで受け取って表示するプログラムを作成する」という課題なのですが、以下のコードで合っているかどうか、またもし間違っているなら間違っている箇所や改善点などをお聞きしたく質問してみました。
inputでボックスを作って、そこから得た情報をページの上に表示するという内容です。
具体的にやったのはHTML内で値を送ってPHPで受け取り、それをエスケープ(htmlspecialchars)して、内容があった場合にのみ上部に表示させるということをしました。htmlspecialcharsは変数に入れない方がいいというアドバイスを受けましたが、この場合他の書き方がわからなくてこれでいいのかという疑問と、値として得た名前を表示するときに、if ($my_name) という書き方でいいのかという疑問があります。それについてはコード内にコメントで書いてみました。
PHPの勉強始めたてで変な箇所あるかもしれませんがぜひよろしくお願い致します。
PHP
1<?php 2$my_name = ''; 3$gender = ''; 4$mail = ''; 5if (isset($_POST['my_name']) === TRUE && $_POST['my_name'] !== '' ) { 6 $my_name = htmlspecialchars($_POST['my_name'],ENT_QUOTES,'UTF-8'); 7} 8if (isset($_POST['gender']) === TRUE) { 9 $gender = htmlspecialchars($_POST['gender'],ENT_QUOTES,'UTF-8'); 10} 11if (isset($_POST['mail']) === TRUE) { 12 $mail = htmlspecialchars($_POST['mail'],ENT_QUOTES,'UTF-8'); 13} 14?> 15<!DOCTYPE html> 16<html lang="ja"> 17 <head> 18 <meta charset="UTF-8"> 19 <title></title> 20 </head> 21 <body> 22 <?php if ($my_name) { ?> //ここが合っているかどうか気になります。かっこの中は$my_nameでよかったでしょうか? 23 <p>入力した名前: <?php print $my_name; ?></p> 24 <?php } ?> 25 <?php if ($gender === 'man' || $gender === 'woman') { ?> 26 <p>選択した性別: <?php print $gender; ?></p> 27 <?php } ?> 28 <?php if ($mail === 'OK') { ?> 29 <p>メールを受け取るかを表示: <?php print $mail; ?></p> 30 <?php } ?> 31 <form method="post"> 32 <p><label>お名前: <input id="my_name" type="text" name="my_name"></label></p> 33 <label>性別: <input type="radio" name="gender" value="man">男</label> 34 <input type="radio" name="gender" value="woman">女 35 <input type="checkbox" name="mail" value="OK">お知らせメールを受け取る 36 <p><input type="submit" value="送信"></p> 37 </form> 38 </body> 39</html>
回答2件
あなたの回答
tips
プレビュー