我在用户登录时使用以下内容来更新..但是,只有在登录时才有效。.我记住我的功能,如果检查的用户不必登录。。然后它不会更新..
有没有办法使用用户会话ID更新最后一个活动?
$stmt = $db->prepare("UPDATE users SET DateLastVisit = ?");
$stmt->bind_param('s', $Date);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
要实现这一目标,您需要将活动与用户ID匹配,因为没有此功能,您最终将更新每个用户记录。
尝试以下操作:
if(!isset($_SESSION)){//check if we already have a session at the moment
session_start();
}
$user_id = $_SESSION['id'];//change to your session id key
$stmt = $db->prepare("UPDATE users SET DateLastVisit = ? WHERE id_user = ?");//change id_user to what you have in your database
/*always check whether the prepare() succeeded */
if ($stmt === false) {
trigger_error($db->error, E_USER_ERROR);
}
$stmt->bind_param('si', $Date, $user_id); // we bind the user_id as well
$stmt->execute(); //execute, returns true/false
$result = $stmt->get_result();
$stmt->close();
当用户登录时,为此用户设置一个令牌,然后给出这个令牌TTL,将其保存到表格中。一个新的令牌和ttl。