0

我现在正在用 PHP 编写一个社区,但我被困住了,因为我不知道如何查看我的用户在该网站上花费了多长时间。它应该显示在他们的个人资料上,例如:“此用户在站点名称上花费了 10 小时 10 分钟”。但我不知道,我应该怎么做这个!

我想在我的用户表(在我的 MySQL 数据库中)添加一行名为“last_visit_time”的行来存储用户上次访问我网站上的网站的时间,一个名为“total_time”的行来存储在线花费的总时间。

然后每次用户加载页面时,它首先检查您是否登录。如果是,它首先检查 if('last_visit_time' + 2 minutes >= $current_time) 然后,如果是真的,它会添加差异'last_visit_time' 和 $current_time 到 'total_time' 行。之后,它将“last_visit_time”更新为当前时间。

这将为用户访问一个新页面提供 2 分钟的容差 - 然后它会添加在前一页面上花费的时间(如果它低于 2 分钟)。据我所知,用户无法使用此脚本作弊,因为通过垃圾邮件更新页面或在 2 个窗口中访问页面(在同一帐户上),您将一无所获。

但是你怎么能真正得到当前时间和 last_visit_time 之间的差异,并检查是否已经超过 2 分钟!或者我应该用不同的方式来做这件事吗?

我非常愿意提供建议,尤其是帮助,因为它非常需要。

谢谢!

4

1 回答 1

0

我已经用简单的脚本解决了这个问题。我有 X 分钟的时间“容忍度”。每次,用户打开另一个页面,在页面“渲染”之前我运行脚本“更新用户时间”。我已经存储了上次用户活动的时间,现在采用当前时间并有所作为,这给了我自上次“更新”以来的时间。这次我增加了用户在我的网站上花费的时间。

为了测量时间,我使用简单的 UNIX 时间戳,这很容易处理。只需减去两个数字,即可获得自上次活动以来的秒数。

然而,它有一个缺点。如果用户去别的地方。他可以在单页上几个小时然后出去。这永远不会以这种方式计算。为此,您将不得不使用 JavaScript 和计时器,这将不时通过 AJAX 启动脚本,并执行与用户“单击”您网络上的另一个页面相同的操作。

于 2013-07-28T17:35:27.953 回答