我已阅读其他一些帖子并尝试将它们放在一起,但仍然无法解决我的问题: Navigating back with PHP form submission , php back button < / p>
我正在为长篇在线表单编写模板,我正试图将表单分成几页。无论用户点击“后退”还是“下一步”,之前输入的字段仍将保留在那里。
但是,每当我点击第二页上的后退按钮时,第一页上的所有信息都会消失。
这是第一页顶部的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"> </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"> </label>
<button class="back"><a href="form.php">Back</a></button>
<input type="submit" name="review" value="REVIEW">
</p>
</form>
非常感谢能帮助的人!!!!!
答案 0 :(得分:5)
我不认为问题是你的后退按钮。问题可能是因为你没有在你的输入中回应任何东西&#39;值。
要修复它,请替换
<input type="text" name="email" value="<?php htmlentities($email); ?>">
用
<input type="text" name="email" value="<?php echo htmlentities($email); ?>">
OR
<input type="text" name="email" value="<?=htmlentities($email)?>">
为每个输入做同样的事情。如果您没有注意到我添加的内容,我已在您的HTML的value属性中添加了echo
。