Php 检测用户是否刷新了页面

Php 检测用户是否刷新了页面,php,Php,如何检测用户是否使用PHP刷新了页面 我尝试了$pagewasrefresh=isset($\u服务器['HTTP\u缓存控制]])和&$\u服务器['HTTP\u缓存控制]]==='max age=0'; 但它对我不起作用,因为我没有缓存 以下是对我有效的方法: $pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']); if($pageWasRefreshed ) { // Page was refreshed } el

如何检测用户是否使用PHP刷新了页面

我尝试了
$pagewasrefresh=isset($\u服务器['HTTP\u缓存控制]])和&$\u服务器['HTTP\u缓存控制]]==='max age=0';

但它对我不起作用,因为我没有缓存

以下是对我有效的方法:

$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']);

if($pageWasRefreshed ) {
  // Page was refreshed
  }
 else {
    // Page wasn't refresh
}

这种方法有水石吗

您可以通过多种方式执行此操作:

  • 第一次设置会话,然后检查会话是否已设置

  • 在MySQL数据库中插入客户端IP地址,并检查每个请求是否有用户访问过

  • 现在,您已经创建了自己的逻辑,并用谷歌搜索它如何以这种方式实现
    我建议您使用第二种解决方案。

    当有人访问页面时,第一次设置
    cookie
    。因此,当刷新时,检查
    cookie
    是否存在,如果存在,则刷新页面

    if (isset($_COOKIE['token'])) 
    {
      //The page is refeshed,
    } 
    else 
    {
      //first time user, set cookie.
      setcookie('token');
    
    }
    

    1) 只有在浏览器关闭时,会话才会被销毁。所以,若用户将关闭该选项卡,然后重新打开它,那个将类似于用户刷新的页面。2) 我认为这将是一个巨大的数据库…虽然它将是一个巨大的数据库,但不要担心mysql可以处理它。这个问题与会话相同。若用户关闭一个标签,然后再次打开网站,页面将被视为刷新。