在PHP中,我如何检查用户是否刚刚访问了网站的主页/索引页


In PHP, how do I check if user just visited the homepage/indexpage of the website?

我不是说用户以前是否访问过网站,但一般来说,当一个未登录的用户(无论他们以前是否访问了网站)刚刚访问过你网站的主页时?我认为这与会话有关,但我还没有完全弄清楚。

您可以使用$_SERVER['HTTP_REFERER']来执行此操作,它将返回上次访问的页面地址。重要的事情不能依赖于此,因为此变量可以更改,并且可能不会由用户代理设置。

来自PHP文档:

将用户代理引用到当前页面。这是由用户代理设置的。并非所有用户代理都会设置此项,并且有些提供了将HTTP_REFERER修改为特色简言之,它不能真正被信任。

您也可以使用cookie或会话变量,并将访问的页面设置为:

// by file
setcookie('last_page', $_SERVER['PHP_SELF']);
// by uri
setcookie('last_page', $_SERVER['REQUEST_URI']);

并使用进行检查

// homepage
$home = 'home'; 
// check
if ($_COOKIE['last_page'] == $home) {}

参考

  • $服务器
  • setcookie()
  • $_COOKIE

您应该能够利用PHP的服务器变量。

$refer = $_SERVER['HTTP_REFERER'];

这很容易被任何用户欺骗,但这是一种简单的方法

您可以在进入索引页面时设置一个带有时间戳的cookie。

如果您想要一种万无一失的方法(假设用户启用了cookie),请启动一个会话并分配一个类似$_SESSION['ref'] = $_SERVER['PHP_SELF']的变量,并在用户访问的后续页面上检查您的主页url。