NOW()"; $stmt = mysqli_prepare($conn, $sql); mysqli_stmt_bind_param($stmt, "s", $token); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); $user = mysqli_fetch_assoc($result); if ($user) { // Token ist gültig, alle Benutzerdaten in die Session laden $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['email'] = $user['email']; $_SESSION['role'] = $user['role']; // Optional: Ablaufdatum des Tokens verlängern (Rolling Expiration) $new_expires_at = date('Y-m-d H:i:s', strtotime('+30 days')); $update_sql = "UPDATE login_tokens SET expires_at = ? WHERE token = ?"; $update_stmt = mysqli_prepare($conn, $update_sql); mysqli_stmt_bind_param($update_stmt, "ss", $new_expires_at, $token); mysqli_stmt_execute($update_stmt); mysqli_stmt_close($update_stmt); } else { // Token ist ungültig oder abgelaufen, Cookie löschen setcookie('remember_token', '', time() - 3600, "/"); } } // 🔹 Letzte Aktivität aktualisieren (nur für eingeloggte Benutzer) if (isset($_SESSION['user_id'])) { $now = new DateTime(); $last_update = $_SESSION['last_activity_update'] ?? null; $update_needed = true; if ($last_update) { $last = new DateTime($last_update); if ($now->getTimestamp() - $last->getTimestamp() < 60) { $update_needed = false; } } if ($update_needed) { $stmt = mysqli_prepare($conn, "UPDATE users SET last_activity = NOW() WHERE id = ?"); if ($stmt) { mysqli_stmt_bind_param($stmt, "i", $_SESSION['user_id']); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); $_SESSION['last_activity_update'] = $now->format('Y-m-d H:i:s'); } } } else { header('Location: login.php'); exit(); }