我在用户登录时使用以下内容进行更新..但这仅在他们登录时才有效。我有一个记住我的功能,如果检查用户不必登录..然后它就不会... t更新..
有没有办法使用用户会话ID来更新上一个活动?
$stmt = $db->prepare("UPDATE users SET DateLastVisit = ?");
$stmt->bind_param('s', $Date);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
答案 0 :(得分:2)
要实现此目的,您需要将活动与用户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();
答案 1 :(得分:0)
当用户登录时,为此用户设置一个令牌,并将此令牌TTL保存到您的表中。然后,您可以使用令牌检查用户登录状态,一旦ttl过期,重建新令牌并ttl。