首页 > 解决方案 > PHP 不断提供相同的数据

问题描述

我已经实现了一个网站点击计数器。每当我访问我的网站时,它都不会改变它所提供的服务(并且数量保持不变)。预期的行为是它会增加点击次数,但事实并非如此。

我认为提供的页面被缓存在浏览器上,所以我在 Stack Overflow 上查看了一些结果。建议header("Cache-Control: no-cache, must-revalidate");为现代浏览器提供一些 SO 答案。这似乎使页面完全重新加载,但数字没有改变。结果还是一样。然后我在另一台设备上尝试了它,它显示了相同的数字(计数器没有上升)。我再次尝试完全禁用缓存。依然没有!

然后我认为该页面可能会缓存在服务器上。我再次查看了一些关于 SO 的结果,有人提出了建议clearstatcache();,但这无济于事。

进一步的调查表明,php index.php在目录中运行按预期工作。计数器增加并且页面内容被吐出到控制台中。我在浏览器上刷新了页面(没有缓存),并且数量增加到了吐到我的控制台中的那个。但连续刷新时并没有增加。

我的PHP代码:(index.php

<?php
clearstatcache(); //tried this but it doesn't help
header("Cache-Control: no-cache, must-revalidate"); //Also doesn't help
$hits = exec("python3 hitsAdd.py"); //Execute a Python Script. 
?>

<!-- [unimportant html] -->

<?php echo "$hits";?>

我的 Python 3 代码:( hitsAdd.py)

try:
    f = open("hits.txt")
    hits = int(f.read())
    f.close()
except:
    hits = 0

print(hits)

hits += 1
f = open("hits.txt", "w")
f.write(str(hits))
f.close()

hits.txt是一个只包含一个数字的文件。例如:

10

标签: phppython-3.xapache2

解决方案


推荐阅读