我读了一些其他帖子,并试图将它们放在一起,但仍然无法解决我的问题:使用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"> </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>
非常感谢任何能提供帮助的人!!!!!
我认为问题不在于你的后退按钮。问题可能是因为您没有在输入值中呼应任何内容。
要修复它,请更换
<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
。