使用PHP导航返回


navigating back with PHP

我读了一些其他帖子,并试图将它们放在一起,但仍然无法解决我的问题:使用PHP表单提交导航返回PHP返回按钮

我正在为一个长的在线表格编写模板,我正试图将表格分成几页。无论用户单击"上一步"还是"下一步",以前输入的字段都将保留在那里。

然而,每当我点击第二页上的后退按钮时,第一页上的所有信息都会消失。

这是第一页顶部的php块:

   session_start();
   $_SESSION['initialized'] = 'Aquafina';
   if (!isset($_SESSION['email'])) {
      $_SESSION['email'] = '';
   }
   if (!isset($_SESSION['fname'])) {
     $_SESSION['fname'] = '';
   }
   foreach ($_SESSION as $key => $value) {
     $temp = trim($value);
     ${$key} = $temp;
   }

第一页HTML:

<form method="post" action="secure.php">
 <p>
    <label for="email">Email: </label>
    <input type="text" name="email" value="<?php htmlentities($email); ?>">
 </p>
 <p>
    <label for="fname">First Name: </label>
    <input type="text" name="fname" value="<?php htmlentities($fname); ?>">
 </p>
 <p>
    <label for="hidden">&nbsp;</label>
    <input type="submit" name="next" value="NEXT">
 </p>
</form>

我已经尝试了很多替代方案,目前我一直认为我会将表单传递到一个名为"secure.php"的页面中(我不确定我最初为什么这么做),并且有以下代码:

   session_start();
   foreach ($_POST as $key => $value) {
    $_SESSION[$key] = trim($_POST[$key]);
   }
   header('Location: form2.php' );

第二页看起来很相似,但我添加了一个后退按钮,导致了所有的问题。第二页顶部的php块:

  session_start();
  if (isset($_SESSION['initialized'])) {
  if (!isset($_SESSION['lname'])) {
    $_SESSION['lname'] = '';
  }
  if (!isset($_SESSION['university'])) {
    $_SESSION['university'] = '';
  }
  foreach($_SESSION as $key => $value) {
    $temp = trim($value);
    ${$key} = $temp;
  }
} else {
 header('Location: form.php');
 exit;
}

第二页的HTML:

 <form method="post" action="secure2.php">
   <p>
    <label for="lname">Last Name: </label>
    <input type="text" name="lname" value="<?php htmlentities($lname); ?>">
   </p>
   <p>
    <label for="university">University: </label>
    <input type="text" name="university" value="<?php       htmlentities($university); ?>">
   </p>
   <p>
    <label for="hidden">&nbsp;</label>
    <button class="back"><a href="form.php">Back</a></button>
    <input type="submit" name="review" value="REVIEW">
   </p>
 </form>

非常感谢任何能提供帮助的人!!!!!

我认为问题不在于你的后退按钮。问题可能是因为您没有在输入值中呼应任何内容。

要修复它,请更换

<input type="text" name="email" value="<?php htmlentities($email); ?>">

<input type="text" name="email" value="<?php echo htmlentities($email); ?>">

<input type="text" name="email" value="<?=htmlentities($email)?>">

对你的每一个输入都做同样的事情。如果您没有注意到我添加了什么,我已经在HTML的value属性中添加了echo