【问题标题】:PHP document expired on form postPHP 文档在表单发布时过期
【发布时间】:2014-01-23 06:42:08
【问题描述】:

我的第 1 页带有表单 (POST),该表单 (POST) 发布到第 2 页,如果表单 POSTed 显示结果,如果表单未发布并且第 2 页打开,它将显示基于 PHP if 的其他内容。 第 2 页有到第 3 页的链接,当我从第 1 页 -> 第 2 页发布表单并通过链接转到第 3 页时,我点击返回并获得“文档已过期”

有人告诉我这是正常的,但是为什么会发生这种情况?我假设如果 PHP 检查的 POST 变量不存在并为页面提供不同的内容,它应该有多好。

有什么方法可以让它工作或将其编码到浏览器中以使其表现得像这样吗?

编辑答案:<?php session_cache_limiter('private_no_expire'); ... ?> 已修复

【问题讨论】:

  • 我认为是浏览器问题。当您返回(使用浏览器返回按钮)到已发布到的页面时,浏览器将询问您是否要再次发送数据或给您一个过期的页面。其中哪种情况取决于您使用的浏览器。不幸的是,没有办法解决它,因为这一切都发生在请求发送到服务器之前,因此更改 PHP 代码将无效
  • 它总是询问是否再次发布,但这次它没有它只是立即显示过期页面
  • <?php session_cache_limiter('private_no_expire'); ... ?> 已修复

标签: php html post


【解决方案1】:

在您的表单处理脚本(我认为是第 2 页)中,您应该在处理完数据后重定向。这样用户就永远不会看到该错误。

例子:

if (isset($_POST['submit'])) {
    // save something to database
    header('Location: http://www.example.com/page2');
    exit;
}

// other content

【讨论】:

  • <?php session_cache_limiter('private_no_expire'); ... ?> 已修复
猜你喜欢
  • 2015-11-16
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
相关资源
最近更新 更多