如何跟踪用户在网站上的使用情况?

2024-04-30

我正在使用 PHP/MYSQL。每次用户登录时,我们都会插入他们登录的时间和登录日期。虽然我们很容易知道特定一天有多少用户登录,但我不确定如何计算他们在网站上花费的时间。

例如,就像用户登录并将记录插入到 login_tracking 表中一样,当用户点击“注销”时,我们也会更新该记录及其注销时间。这样,我们减去登录和注销的时间,就可以得到每个人花费的时间,但是如果大多数人没有点击“注销”,而是清除 cookie/缓存或只是关闭网站打开的窗口/选项卡,会发生什么情况在?

有一个更好的方法吗?我正在使用 Google Analytics,它为我提供每天都会出现的用户和访问,但我想要一些专有的东西来跟踪使用情况?

有什么想法我能做什么吗?

更新:@Paul 问我是否正在使用 Sessions。我就是这样,这就是我使用它的方式:

$用户名 = $_SESSION["用户名"];


您可以通过在他们登录时设置日期时间来完成此操作。

因此,当用户登录时,您会更新 mysql 字段,即DATETIME, 就像是...

 $q = $dbc -> prepare("UPDATE accounts SET loggedOn = NOW() WHERE username = ?");
 $q -> execute(array($_SESSION['username']));

现在您所要做的就是在数据库表中创建更多列,其中一个称为totalTime,还有一个叫active或者任何你真正喜欢的东西。

在每个页面上加载更新active这是一个DATETIME列还带有NOW(),

 $q = $dbc -> prepare("UPDATE accounts SET active = NOW() WHERE username = ?");
 $q -> execute(array($_SESSION['username']));

这可以确保您知道用户是否仍然在线,您可以检查他们上次活动的时间。现在假设,如果 5 分钟不活动后,您想找到您简单活动的总时间,

 $q = $dbc -> prepare("UPDATE accounts SET totalTime = ADDDATE(totalTime, DATEDIFF(NOW(), loggedOn)) WHERE active < DATE_SUB(NOW(), INTERVAL 5 MINUTE)");
 $q -> execute();

上面的作用是,如果用户不活动 5 分钟,就会花费loggedOn时间减去当前时间,得到网站上的总时间并将其添加到DATETIME column totalTime.

只需将最后一个查询设置为每 5 分钟一次的 cron 集,您就可以非常准确地测量人们在您网站上的时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跟踪用户在网站上的使用情况? 的相关文章

随机推荐