入力フォーム入力して確認画面に行き、そして、もとに戻るボタンを押して戻ると、フォーム内の情報が入力されているのにエラーが表示されてしまいます。これをなくしたいです。付属画像のようになります。
確認画面から入力画面に戻る際に、入力した情報は保持されています。原因はなんだと思いますでしょうか?
form01.php 入力画面
html
1<?php 2session_start(); 3$errors = array(); 4if ($_POST) { 5 6$name = filter_input(INPUT_POST, 'name'); 7if (empty($name)) $errors[] ="メールアドレスが入力されていません。 "; 8$name = htmlspecialchars($name, ENT_QUOTES); 9 10if (count($errors) === 0) { 11$_SESSION['name'] = $name; 12 13/* 確認画面 */ 14header('Location:form02.php'); 15exit(); 16} 17} 18 19if(isset($_GET['action']) && $_GET['action'] === 'edit'){ 20$name = $_SESSION['name']; 21} 22?>23 24<body>25<form action="form01.php" method="post" id="form">26<div class="tel-titile">メールアドレス</div>27<input type="text" class="form1" name="name" id="name"28value="<?php if(isset($name)){ echo $name; } ?>" />29 30<p class="button1"><button id="submit" class="hover-transition" type="submit" value="送信する">確認画面へ</button></p>31 32<!--phpcountエラーメッセージ0の場合ここに出現-->33<div class="errnoback-color">34<?= count($errors) ? '<ul><li>' . implode('</li><li>', $errors) . '</li></ul>' : '' ?>35</div>36</form>37</body>
form02.php 確認画面
html
1<?php 2session_start(); 3 4if(isset($_SESSION['name'])){ 5$name = $_SESSION['name']; 6} 7 8$_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(48)); 9$token = htmlspecialchars($_SESSION['token'], ENT_QUOTES); 10?>11 12<body>13<form action="form3.php" method="post" id="form">14<input type ="hidden" name ="token" value ="<?php echo $token ?>">15<div class="tel-titile">アドレス</div>16<div class="inputtitle"><?php echo $name; ?></div>17 18<p class="button01"><button class="hover-transition01" formaction="form01.php?action=edit">入力情報を変更する</button></p><!--クリックすると前ページid5の場所に戻る-->19<p class="button1"><button id="submit" class="hover-transition" type="submit" value="送信する">送信</button></p>20 21</form>22</body>
0 コメント