phpでフォームを作りました。
form.php→sent.php→complete.phpの順番ですが、
特に問題なくメール飛んで、リロードもしないようにしましたが、
urlで直接sent.phpを入力してたら、エラーがいっぱい出ています。
調べたところissetで解決できそうなんですが、具体的にどうすればいいですか?よろしくお願いいたします。
###発生している問題・エラーメッセージ
Notice: Undefined index: name in C:\xampp\htdocs\form\sent.php on line 4
Notice: Undefined index: gender in C:\xampp\htdocs\form\sent.php on line 5
Notice: Undefined index: age in C:\xampp\htdocs\form\sent.php on line 6
Notice: Undefined index: body in C:\xampp\htdocs\form\sent.php on line 7
Notice: Undefined index: sports in C:\xampp\htdocs\form\sent.php on line 8
アンケート
名前
Notice: Undefined index: name in C:\xampp\htdocs\form\sent.php on line 33
名前が未入力です
性別
Notice: Undefined index: gender in C:\xampp\htdocs\form\sent.php on line 49
年齢
Notice: Undefined index: age in C:\xampp\htdocs\form\sent.php on line 55
好きなスポーツを選択して下さい
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\form\sent.php on line 64
内容
Notice: Undefined index: body in C:\xampp\htdocs\form\sent.php on line 77
内容が未入力です
Notice: Undefined index: body in C:\xampp\htdocs\form\sent.php on line 80
Notice: Undefined index: name in C:\xampp\htdocs\form\sent.php on line
###該当のソースコード
<?php session_start(); $_SESSION["ticket"] = SHA1(uniqid().mt_rand()); $name= $_POST['name']; $gender=$_POST['gender']; $age=$_POST['age']; $body=$_POST['body']; $sports=$_POST['sports']; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php</title> <link rel="stylesheet" href="common/css/reset.css"> <link rel="stylesheet" href="common/css/sent.css"> </head> <body><?php echo htmlspecialchars($_POST['age']); ?><div id="anketo"> <h4>アンケート</h4> <div class="title"><p>名前</p></div> <?php if ($_POST['name']=="") { echo '<FONT COLOR="RED">名前が未入力です</FONT>'; }else{ echo htmlspecialchars($_POST['name']);} ?> <div id="sex"> <div class="seibetu"><p>性別</p></div> <?php echo htmlspecialchars($_POST['gender']); ?> </div> <div class="title"><p>年齢</p></div>
<div class="sports"> <p class="suki">好きなスポーツを選択して下さい</p> </div> <div id="sp"> <?php
foreach ($sports as $value) {
print("$value"."<br>");
}
?>
</div>
<div id="btn"> <p id="text">内容</p> <div class="naiyou"> <?php if($_POST['body']=="") { echo '<FONT COLOR="RED">内容が未入力です</FONT>'; } $text = $_POST['body']; echo nl2br($text); ?> </div> </div> <form action="complete.php" method="post"> <div id="botan"> <div class="soushin"> <!--送信ボタン--> <?php if($_POST['name']==""||$_POST['body']==""){ ' <input type="submit" name="submit" value="送信"/></div>';} else{ echo ' <input type="submit" name="submit" nvalue="送信"/></div>';} ?> <input type="hidden" name="ticket" value="<?php echo htmlspecialchars($_SESSION["ticket"], ENT_QUOTES);?>"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="gender" value="<?php echo $gender; ?>"> <input type="hidden" name="age" value="<?php echo $age; ?>"> <input type="hidden" name="sports" value="<?php foreach ($sports as $value) {
print ("$value"."\r\n");
}?>">
<input type="hidden" name="body" value="<?php echo $body; ?>">
</div> <!--戻るボタン--></div><div class="modoru"> <input type="button" class="submit" id="return" value="戻る" onClick="history.back()"> <input type="hidden" name="name" value="<?php echo $name; ?>"></div>
</div><!-- anketo --> </body> </html> ###試したこと</form>
###補足情報(言語/FW/ツール等のバージョンなど)
初心者なので、優しくお願いいたします!
回答4件
あなたの回答
tips
プレビュー