php – 如何在会话过期后自动更新数据库而不在我的页面上刷新
发布时间:2020-12-13 21:53:48 所属栏目:PHP教程 来源:网络整理
导读:此代码需要刷新或单击页面才能进入索引页面,然后在会话过期后更新数据库. 如何在会话过期后自动更新数据库,以便用户激活为0而不刷新或点击页面? $idletime = 3600; //after 1hr the user gets logged outif (time() - $_SESSION['timestamp'] = $idletime){
此代码需要刷新或单击页面才能进入索引页面,然后在会话过期后更新数据库.
如何在会话过期后自动更新数据库,以便用户激活为0而不刷新或点击页面? $idletime = 3600; //after 1hr the user gets logged out if (time() - $_SESSION['timestamp'] >= $idletime){ $online = "UPDATE users SET active = 0 WHERE username = '".$_SESSION['username']."'"; mysqli_query($con,$online); session_destroy(); header("Location:index.php"); } else { $_SESSION['timestamp'] = time(); } 解决方法
我建议在这里使用不同的方法.
您不应更新数据库中的“活动”字段.否则,您在数据库中创建“lastActivity”字段,并在每次用户在网站上执行某些操作时更新它. 在这种情况下,您可以通过查询数据库轻松检测哪些用户处于非活动状态,如下所示: SELECT * FROM users WHERE lastActivity < TIMESTAMP(CURRENT_TIMESTAMP() - INTERVAL 1 HOUR); 您的PHP代码如下所示: $online = "UPDATE users SET lastActive = NOW() WHERE username = '".$_SESSION['username']."'"; mysqli_query($con,$online); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |