アンケートフォーム(regform_input.php)をつくり、
名前や生年月日などが記入条件をクリアすれば、
完了などの画面を出力(regform.php)し、
もし記入漏れがあるなど、条件をクリアしなければ、
リダイレクトでアンケートフォーム(regform_input.php)のページへ戻し、
その際に記入していたデータはセッションを使い、保持をしたままにしたいのですが、
つまづいています。
具体的には、セッションでregform.phpからregform_input.phpにデータを送り、
アンケートフォームに記入していた内容を出力するように書いているつもりなのですが、
Undefined variableと出力されてしまいます。
そうすればよいでしょうか。。
まだ途中ですが、以下がコードです。(とりあえず名前の部分さえ出力されれば、他の欄にもおなじように書けばできると思うので途中にしたままです。申し訳ございません。)
regform_input.php
lang
1<?php 2session_start(); 3?> 4<!DOCTYPE html> 5<html> 6<head> 7<meta charset="UTF-8"> 8<title>PHP基礎</title> 9</head> 10<body> 11 12<form action="regform.php" method="post"> 13 名前:<br /> 14 <input type="text" name="name1" size="12" maxlength="10" value="<?php echo $name1; ?>"><br /> 15 名前(確認):<br /> 16 <input type="text" name="name2" size="12" maxlength="10" value=""><br /> 17 なまえかな:<br /> 18 <input type="text" name="kana1" size="20" maxlength="15"><br /> 19 なまえかな(確認):<br /> 20 <input type="text" name="kana2" size="20" maxlength="15"><br /> 21 生年月日(例:1990年08月04日):<br /> 22 <input type="text" name="year" size="4" maxlength="4">年<input type="text" name="month" size="4" maxlength="2">月<input type="text" name="date" size="2" maxlength="2">日<br /> 23 性別:<br /> 24 <input type="radio" id="male" name="sex" value="男性"><label for="male">男性</label> 25 <input type="radio" id="female" name="sex" value="女性"><label for="female">女性</label> 26 <br /> 27 自己紹介:<br /> 28 <textarea name="intro" cols="30" rows="5"></textarea><br /> 29 <input type="submit" value="送信"> 30</form> 31 32 33</body> 34</html>
regform.php
lang
1<?php 2session_start(); 3$_session['name1']=htmlspecialchars($_POST['name1'],ENT_QUOTES); 4$name1=$_session['name1'] 5$_session['name2']=htmlspecialchars($_POST['name2'],ENT_QUOTES); 6$name2=$_session['name2'] 7$kana1=htmlspecialchars($_POST['kana1'],ENT_QUOTES); 8$kana2=htmlspecialchars($_POST['kana2'],ENT_QUOTES); 9$year=htmlspecialchars($_POST['year'],ENT_QUOTES); 10$month=htmlspecialchars($_POST['month'],ENT_QUOTES); 11$date=htmlspecialchars($_POST['date'],ENT_QUOTES); 12$sex=htmlspecialchars($_POST['sex'],ENT_QUOTES); 13$intro=htmlspecialchars($_POST['intro'],ENT_QUOTES); 14if(($name1=="")or($name2=="")or($kana1=="")or($kana2=="")or($year=="")or($month=="")or($date=="")or($intro=="")or($sex=="")){ 15header("Location: regform1_input.php"); 16exit; 17} 18else{ 19 if ($name1!=$name2) { 20 header("Location: regform1_input.php"); 21 exit; 22 } 23 if (preg_match("/^[ぁ-ん]+$/u", $kana1)==false){ 24 header("Location: regform1_input.php"); 25 exit;} 26 if ($kana1!=$kana2) { 27 header("Location: regform1_input.php"); 28 exit;} 29 if (!checkdate($month, $date, $year)) { 30 header("Location: regform1_input.php"); 31 exit;} 32} 33?> 34<!DOCTYPE html> 35<html> 36<head> 37</head> 38<body> 39</body> 40</html>
よろしくおねがいします!
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/03/13 09:20
2015/03/13 15:34