我想我的问题是如何理解$_POST处理。
我有两个页面处理2个表格。第1页要求提供一些信息,这些信息将在第2页中使用。当提交时,表单操作使用同一页,然后在验证后重定向到下一页,但仅在$_GET变量?usersubmit=1处理数据。
我的问题出现在当用户点击浏览器的“返回”按钮以编辑以前表单中的数据时。浏览器不会重新提交这些数据,只是显示一个空白表单。我不想使用$_SESSION数据填写表单,因为我认为重新提交方法可能是更快,更少问题的解决方法。
我还尝试了使用javascript重定向而不是header,但浏览器足够聪明,不会让你返回到想要重定向的页面,所以它不起作用。
希望能得到任何帮助和理解,谢谢。
我有两个页面处理2个表格。第1页要求提供一些信息,这些信息将在第2页中使用。当提交时,表单操作使用同一页,然后在验证后重定向到下一页,但仅在$_GET变量?usersubmit=1处理数据。
<form action="<?=$_SERVER['PHP_SELF']?>?usersubmit=1" method="post" name="form1">
<input type="text" name="field1">
</form>
假设我有一个名为form1.php的页面。当提交表单后,它将被发送到form1.php?usersubmit=1。然后该页面会将已发布的数据分配给会话变量,然后通过header('location:form2.php')重定向到form2.php。
<?
if($_GET['usersubmit']){
if($_POST['field1']){
#if valid then assign session variable and redirect to next form
$_SESSION['field1'] = $_POST['field1'];
header("location:form2.php");
}else{
#if invalid send error message
$error = true;
}
}
?>
我的问题出现在当用户点击浏览器的“返回”按钮以编辑以前表单中的数据时。浏览器不会重新提交这些数据,只是显示一个空白表单。我不想使用$_SESSION数据填写表单,因为我认为重新提交方法可能是更快,更少问题的解决方法。
我还尝试了使用javascript重定向而不是header,但浏览器足够聪明,不会让你返回到想要重定向的页面,所以它不起作用。
希望能得到任何帮助和理解,谢谢。