2017-05-06 84 views
2

我使用以下更新时,用户登录..但这只适用于他们登录..我有一个记住我的功能,如果选中的用户不必登录..然后它不更新..PHP更新日期时间与会话

有没有办法使用用户会话ID来更新最后的活动?

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

回答

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(); 
0

当用户登录,设置令牌该用户,并给该令牌TTL,这个保存到您的table.then,你可以检查用户的登录状态令牌,一旦TTL过期,重建一个新的令牌和ttl。