Php 如何验证缓存是否已禁用(IE7)?

Php 如何验证缓存是否已禁用(IE7)?,php,html,internet-explorer-7,pdflib,no-cache,Php,Html,Internet Explorer 7,Pdflib,No Cache,我正在开发一个应用程序,利用PDFLib为我的用户提供动态PDF文件,总结他们的帐户,并需要确保这些页面没有被缓存(一些敏感数据被传递,出于安全原因,我不能将其存储在缓存中) 我已尝试使用以下代码: Header("Expires:-1"); Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); Header("Cache-Control: no-store, no-cache, must-revalidate"); Hea

我正在开发一个应用程序,利用PDFLib为我的用户提供动态PDF文件,总结他们的帐户,并需要确保这些页面没有被缓存(一些敏感数据被传递,出于安全原因,我不能将其存储在缓存中)

我已尝试使用以下代码:

Header("Expires:-1");
Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
Header("Cache-Control: no-store, no-cache, must-revalidate");
Header("Cache-Control: post-check=0, pre-check=0", false);
Header("Pragma:no-cache");
首先,我没有确定的方法来测试IE7是否没有缓存页面,所以我的第一个问题是“如何测试以确保我的无缓存头工作?”

其次,在我将这些行添加到代码中后,PDF在IE7中停止显示。当我移除这些线时,它工作得很好。有人知道如何避免这种行为吗

提前谢谢


编辑:第一个问题已经回答;我应该单独问他们。我的第二个问题“如何避免IE7在发送无缓存标头时不呈现我的PDFLib页面的行为?”仍然处于活动状态。

要检查页面是否已缓存,请更改并刷新。请注意,
Expires
标题应包含日期,因此
-1
的值无效。尝试改用过去的日期。

我实际上找到了IE7的调试栏,它显示了所有的标题和缓存信息。我使用HTTP(S)选项卡,选择我的文档并查看下面的“信息和缓存”。一旦我掌握了窍门,就很容易了。

如果我没弄错的话,“-1”计算为无效日期,浏览器会自动将其假定为“过去的日期”,对吗?当然,这是显而易见的答案;我想知道是否有开发人员工具(特别是IE7),这样我就不必通过命令链x多次提交并将代码推送到测试服务器,只是为了测试我的页面是否没有被缓存。@Matt可能,虽然我总是使用遥远的未来日期,我认为这可能有错误。如果你想测试IE的具体行为,你必须在IE中加载页面;我只是想尽量避免“修改、提交、代码审查、推送、测试、重复”这样的循环(您似乎设置了两个
缓存控制头。第二个是否覆盖第一个?@starbeamrainbowlabs否,第二个缓存控制头的第二个参数确保第一个缓存控制头不会被覆盖。我不知道!谢谢!:)是的,当我第一次看到这个片段(来自谷歌搜索)时,我不得不在PHP文档中查找它。它将值附加到标题(最终结果相当于写入标题(“缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0”)@starbeamrainbowlabs或至少+1其他人的注释。