1

我在这里有点疯狂,试图找到一个可能非常简单的解决方案。

我在 Intranet 上有一组报告(外界无法访问),每个报告都有一个输入表单,其中包含一组 HTML 输入,这些输入会改变报告数据。

问题是当您从报告中返回表单时,表单会重置为其原始状态。我希望它缓存(记住 HTML 输入变量),我能找到的只是如何关闭缓存,我想要它!我不希望使用 $_SESSION 和 $_COOKIE 存储来执行此操作,因为我有 120 个报告,每个报告大约有 10 个左右的输入,因此要花很长时间来存储每个人并在刷新时重新加载变量。

我不是服务器管理员,但我相信我们正在运行 Apache 2.2 Web 服务器。这些都是基于 PHP/HTML 的页面。任何建议都会很棒!

这与我的浏览器无关,因为正在缓存其他表单。我更多地研究需要激活服务器上的哪些模块以允许缓存以及我应该在表单的标题中放置哪些注释以允许缓存。Intranet 通过代理运行,所以我想我需要公开缓存控制。

编辑:

当我运行表单页面时,HTTP 标头向我显示了我认为应该更改的内容:

(在响应标题下)

 X-Powered-By: PHP/5.3.3
 Via: *[REMOVED]*
 Server: Apache/2.2.3 (Red Hat)
 Proxy-Connection: Keep-Alive
 Pragma: no-cache
 Expires: Thu, 19 Nov 1981 08:52:00 GMT
 Date: Wed, 13 Feb 2013 23:33:32 GMT
 Content-Type: text/html; charset=UTF-8
 Content-Length: 5191
 Connection: Keep-Alive
 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

我感觉我需要更改 Cache-Control 和 Pragma 值。有谁知道如何实现这一目标?

4

2 回答 2

4

尝试将这些标题添加到页面顶部:

header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime("+2 day")));

注意:如果表单提交并将数据发布到第二页,您可能希望将其放在两个页面的顶部。另外,确保代码在任何 session_start() 之后;如果您正在使用会话。

于 2013-02-14T02:07:54.647 回答
1

尝试将输入的自动完成属性设置为打开。

<input name="myinput" autocomplete="on" type="text">
于 2013-02-13T23:33:16.643 回答