わからないこと
登録ページ(registe.php)から確認ページ(confirm.php)への遷移の書き方がわからないです。
最初、作りとして<form action="confirm.php" method="post">という作りにしていました。
しかし、入力制限をつけることになり、自分自身にpostした作りにしました。そこから、confirm.phpにどうやってデータをわたせばいいか悩んでいます
追記
このまま開くことをすると、エラーがないと判断され、register.phpに遷移してしまいます。もちろんregiste.phpで入力されていないため
未定義エラーがconfirm.phpに表示されます。
実現したいこと
あまり、confirm.phpをいじらないで、register.phpの値をconfirm.phpにpostしたいです。
追記
登録ページ(register.php)の値を、セッションIDに入れて、postで送って、確認ページ(confirm.php)でpost表示してそのままデータベースに入れたいです。
自分の考え
セッションを使って、値を渡すのかなと予想しています。
php
1register.php 2<?php 3session_start(); 4 5$errors = array(); 6//postによる送信 7if (!empty($_POST)) { 8 /* 9 inputタグで受け取りフィルタリングする関数。一般的には、ユーザが入力した値が妥当であるか調べるのに使う 10 FILTER_SANITIZE_SPECIAL_CHARSはサニタイジングを実行してくれます。XSSを防いでくれます 11 */ 12 if (!$KlastName = filter_input(INPUT_POST, 'KlastName', FILTER_SANITIZE_SPECIAL_CHARS)) { 13 $errors['KlastName'] = 'カナ苗字が記載されていません'; 14 } 15 if (!$Kname = filter_input(INPUT_POST, 'Kname', FILTER_SANITIZE_SPECIAL_CHARS)) { 16 $errors['Kname'] = 'カナ名前が記載されていません'; 17 } 18 if (!$lastName = filter_input(INPUT_POST, 'lastName', FILTER_SANITIZE_SPECIAL_CHARS)) { 19 $errors['lastName'] = '苗字が記載されていません'; 20 } 21 if (!$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS)) { 22 $errors['name'] = '名前が記載されていません'; 23 } 24 if (!$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_SPECIAL_CHARS)) { 25 $errors['password'] = 'パスワードが記載されていないです'; 26 } 27 if (!$confirm_password = filter_input(INPUT_POST, 'confirm_password', FILTER_SANITIZE_SPECIAL_CHARS)) { 28 $errors['confirm_password'] = '確認パスワードもよろしく'; 29 } 30 if (!$sex = filter_input(INPUT_POST, 'sex', FILTER_SANITIZE_SPECIAL_CHARS)) { 31 $errors['sex'] = '性別も記載して'; 32 } 33 if (!$bday = filter_input(INPUT_POST, 'bday', FILTER_SANITIZE_SPECIAL_CHARS)) { 34 $errors['bday'] = '生年月日もよろしく'; 35 } 36} 37if (empty($error)) { 38 $_SESSION['join'] = $_POST; 39 header('Location: confirm.php'); exit(); 40 } 41 42 ?> 43 44 45<!DOCTYPE html> 46<html> 47 <head> 48 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 49 <title>ログイン前</title> 50 <script src="app.js" type="text/javascript"></script> 51 </head> 52 <body> 53 <h1>自己紹介</h1> 54 <h2>ユーザ新規登録</h2> 55 <form action="" method="post"> 56 <?php 57 echo "<ul>"; 58 foreach ($errors as $message) { 59 echo "<li>"; 60 echo "$message"; 61 echo "</li>"; 62 } 63 echo "</ul>"; 64 ?> 65 <p>カナ苗字 66 <input type="text" name="KlastName" input pattern="^[ァ-ン]+$" 67 title="全角カタカナでご入力ください。"> 68 </p> 69 <p>カナ名前 70 <input type="text" name="Kname" input pattern="^[ァ-ン]+$" 71 title="全角カタカナでご入力ください。"> 72 </p> 73 <p>苗字 74 <input type="text" name="lastName"> 75 </p> 76 <p>名前 77 <input type="text" name="name" > 78 </p> 79 <p>パスワード 80 <input id="password" type="text" name="password"> 81 </p> 82 <div id="pass_message"></div> 83 <p>パスワード確認 84 <input type="password" name="confirm_password" id="confirm_password" 85 onkeyup="setConfirmMessage(this.value);"> 86 </p> 87 <div id="pass_confirm_message"></div> 88 <input type="radio" name="sex" value="1">男 89 <input type="radio" name="sex" value="2">女 90 <br> 91 生年月日<input type="date" name="bday" value="<?php echo date('Y-m-j');?>"> 92 <br> 93 <input type="submit" name="submit" value="送信"> 94 </form> 95 </body> 96</html> 97
php
1confirm.php 2<!DOCTYPE html> 3<html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 6 <title>確認フォーム</title> 7 </head> 8 <body> 9 <h2>確認ページ</h2> 10 <form method="post" action="add.php"> 11 <p><?php echo "カナ苗字:". $_POST['KlastName'];?></p> 12 <p><?php echo "カナ名前:". $_POST['Kname'];?></p> 13 <p><?php echo "苗字:". $_POST['lastName'];?> 14 <p> <?php echo "名前:". $_POST['name'];?> 15 <p> <?php echo "パスワード:". $_POST['password'];?> 16 <p> <?php 17 $sex = ($_POST['sex'] == 1) ? "男":"女"; 18 echo "性別:" . $sex;?> 19 <p><?php $date = new DateTime($_POST['bday']); 20 echo $date->format('Y年n月j日');?> 21 <br> 22 <input type="submit" name="送信"> 23 <a href="register.php">戻る</a> 24 <input type="hidden" name="KlastName" value="<?php echo $_POST['KlastName'];?>"> 25 <input type="hidden" name="Kname" value="<?php echo $_POST['Kname'];?>"> 26 <input type="hidden" name="lastName" value="<?php echo $_POST['lastName'];?>"> 27 <input type="hidden" name="name" value="<?php echo $_POST['name'];?>"> 28 <input type="hidden" name="password" value="<?php echo $_POST['password'];?>"> 29 <input type="hidden" name="sex" value="<?php echo $_POST['sex'];?>"> 30 <input type="hidden" name="bday" value="<?php echo $_POST['bday'];?>"> 31 </form> 32 </body> 33</html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。