【发布时间】:2018-12-23 15:27:15
【问题描述】:
我想更新数据库中用户的“last_activity”或“last_seen”值。 我编写了以下代码来实现这一点:
$_SESSION['LAST_ACTIVITY'] = time();
$lastseen = $_SESSION['LAST_ACTIVITY'];
$lastseen = date("h:i:sa",$lastseen );
$query = "UPDATE `users` SET `lastseen` = '$lastseen' WHERE `username`='$username'";
$query_run = mysql_query($query);
但问题是上面的代码只会运行一次。我希望它每秒运行一次,这样我就可以获得'last seen'的最新值。
PS:我在网上搜索了很多,但没有得到具体的答案。请帮助我。
【问题讨论】:
-
Activity 应该在用户加载新 url 时更新,例如。或执行与服务器交互的任何其他操作。我可以打开你的页面,出去玩 6 个小时。你会认为我是主动的?我可以在我的浏览器中打开你的 1K 页面,你的服务器将被 ddosed。
-
您需要通过长 ajax 轮询或使用 socket.io 来加载服务器脚本
-
你不会“希望它每秒运行一次”一旦你达到一定数量的用户,这听起来对你的服务器来说有点矫枉过正。仅在用户执行操作时更新
last_seen -
请问各位大神能给个代码吗?
-
如果“last_activity”只涉及一个用户:使用 Ajax 更新数据库中的内容 + 重新加载新内容而不刷新页面,这样用户就会看到“last_activity”
标签: php mysql database logging