【发布时间】:2012-07-24 13:46:32
【问题描述】:
我正在开发一个应用程序,该应用程序利用 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 页面的行为?”仍然有效。
【问题讨论】:
-
您似乎设置了两个
cache-control标头。第二个会覆盖第一个吗? -
@starbeamrainbowlabs 不,第二个缓存控制头的第二个参数确保第一个缓存控制头不会被覆盖。
-
我不知道!谢谢! :)
-
是的,当我第一次看到 sn-p(来自谷歌搜索)时,我不得不在 PHP 文档中查找它。它将值附加到标头(最终结果等同于编写 Header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0") php.net/manual/en/function.header.php
-
@starbeamrainbowlabs 或至少 +1 其他人的评论。
标签: php html internet-explorer-7 pdflib no-cache