php - 如何让浏览器在使用后退按钮时重新发布表单数据?

标签 php forms browser post back-button

我想我的问题是理解 $_POST 处理。

所以我有两个页面处理 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。现在,页面将发布的数据分配给 session 变量,然后通过 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 ,但浏览器足够智能,不会将您送回到想要重定向您的页面,因此它不起作用。

任何有助于理解这一点的帮助将不胜感激。 谢谢。

最佳答案

处理它的唯一方法是通过 session ... HTML5 允许存储此类数据,但说实话,我什至还没有将其视为一种可能性,尽管它确实有效。

关于php - 如何让浏览器在使用后退按钮时重新发布表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641679/

相关文章:

javascript - 获取文档中所有图像的列表(包括 blob)

javascript - 从 vertrigoServ 2.22 到 xampp 服务器 3.2.1 的转换

php - 我如何在 azure 中为 php 应用程序设置 webjob

forms - 调用未定义的方法 Collective

asp.net - 不指定控件 ID 的优点?

javascript - 使用javascript获取浏览器下载路径

PHP 编码 JSON(二维数组)

php - 如何仅显示来自好友列表的帖子。 (正确)

forms - 在另一个组件的表单组内创建一个新的表单组,而不是在 Angular 2 中初始化表单的组件中

security - 如何相信在后续请求中发送回服务器的 cookie 没有过期?