Php 缓存控制失败

Php 缓存控制失败,php,html,Php,Html,我的index.php页面一直被缓存,显示旧的计时器值和其他值,即使我正在使用: session_cache_limiter( 'nocache' ); session_start( ); header( 'Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0' ); 阻止浏览器缓存页面。我检查了Firefly中的标题输出,他们一直说: Cache-Control:private, max-age=10800,

我的index.php页面一直被缓存,显示旧的计时器值和其他值,即使我正在使用:

session_cache_limiter( 'nocache' );
session_start( );
header( 'Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0' );
阻止浏览器缓存页面。我检查了Firefly中的标题输出,他们一直说:

Cache-Control:private, max-age=10800, pre-check=10800
我以前在HTML元数据中有这样的内容:

<META HTTP-EQUIV="cache-control" content="no-cache" />
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

但是已经禁用了它们以检查它们是否有干扰,但是启用或禁用并没有什么区别


感谢您的帮助

将缓存过期日期设置为旧日期

header( 'Expires: Fri, 01 Jan 2010 00:00:00 GMT' );

将缓存过期日期设置为旧日期

header( 'Expires: Fri, 01 Jan 2010 00:00:00 GMT' );
FireFly中输出的头文件仍然是缓存控制专用文件, 最大年龄=10800,预检查=10800,无缓存,必须重新验证, 后检查=0,预检查=0

这意味着,由于您正在设置:

Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: private, max-age=10800, pre-check=10800
应用程序/页面中的某些其他组件/配置正在设置:

Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: private, max-age=10800, pre-check=10800
并且都发送给最终用户。“Cache Control:private”会在浏览器读取值时覆盖这些值,从而导致页面被缓存

注意:,所以可能是在您的代码行之后设置了,因为您的代码行应该覆盖以前的代码行

您需要找出是什么设置了这些“私有”缓存控制头,并禁用/注释它们,否则它将无法工作。也许你的代码后面还有其他部分

FireFly中输出的头文件仍然是缓存控制专用文件, 最大年龄=10800,预检查=10800,无缓存,必须重新验证, 后检查=0,预检查=0

这意味着,由于您正在设置:

Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: private, max-age=10800, pre-check=10800
应用程序/页面中的某些其他组件/配置正在设置:

Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: private, max-age=10800, pre-check=10800
并且都发送给最终用户。“Cache Control:private”会在浏览器读取值时覆盖这些值,从而导致页面被缓存

注意:,所以可能是在您的代码行之后设置了,因为您的代码行应该覆盖以前的代码行


您需要找出是什么设置了这些“私有”缓存控制头,并禁用/注释它们,否则它将无法工作。可能是代码后面的其他部分?

是否确定正在执行标头(…)行,并且它不会发送任何警告或错误?你检查过错误日志了吗?否则我看不出它为什么不工作。Error_log=empty,FireFly中输出的屏幕标题上没有错误仍然是缓存控制私有的,max age=10800,pre-check=10800,no-Cache,必须重新验证,post-check=0,pre-check=0,并添加标题('Expires:Fri,01 Jan 2010 00:00 GMT');到标题。而且,计时器仍不更新。您确定是浏览器将文档保存在其缓存中吗?确保您和服务器之间没有任何代理进行缓存。是否确定正在执行标头(…)行,并且它不会发送任何警告或错误?你检查过错误日志了吗?否则我看不出它为什么不工作。Error_log=empty,FireFly中输出的屏幕标题上没有错误仍然是缓存控制私有的,max age=10800,pre-check=10800,no-Cache,必须重新验证,post-check=0,pre-check=0,并添加标题('Expires:Fri,01 Jan 2010 00:00 GMT');到标题。而且,计时器仍不更新。您确定是浏览器将文档保存在其缓存中吗?确保您和服务器之间没有任何代理进行缓存。将您的行添加到代码中,但仍将缓存控制设置为私有,最大年龄=10800,预检查=10800,无缓存,必须重新验证,后检查=0,预检查=0,计时器仍不更新。不在标题上(“刷新:5;url=$redirectto”),不单击另一页,并返回“返回”,不通过单击从另一页返回到该页的链接,也不通过刷新该页。将您的行添加到代码中,但仍然获得缓存控制私有,最大年龄=10800,预检查=10800,无缓存,必须重新验证,后检查=0,pre-check=0且计时器仍不更新。不在标题上(“refresh:5;url=$redirectto”)、不单击另一个页面、不单击从另一个页面返回到该页面的链接、不刷新该页面。为此,确实是项目的前开发人员将缓存控件设置为其他值的包含文件。为此,它确实是项目的前一个开发人员提供的一个包含文件,该开发人员正在将缓存控件设置为其他值。