PHP更新日期时间与会话

时间:2017-05-06 03:44:37

标签: php session

我在用户登录时使用以下内容进行更新..但这仅在他们登录时才有效。我有一个记住我的功能,如果检查用户不必登录..然后它就不会... t更新..

有没有办法使用用户会话ID来更新上一个活动?

$stmt = $db->prepare("UPDATE users SET DateLastVisit = ?");
$stmt->bind_param('s', $Date);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();

2 个答案:

答案 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。