2017-05-06 105 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。