|
|
<?php |
|
|
|
|
|
session_start(); |
|
|
include_once 'db.php'; |
|
|
|
|
|
|
|
|
$user_id = $_SESSION['user_id'] ?? null; |
|
|
$session_id = $_SESSION['session_id'] ?? null; |
|
|
|
|
|
|
|
|
if ($user_id && $session_id && isset($sessionManager)) { |
|
|
try { |
|
|
$ip_address = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; |
|
|
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? 'unknown'; |
|
|
$sessionManager->logActivity($user_id, 'logout', 'User logged out', $ip_address, $user_agent); |
|
|
|
|
|
|
|
|
if ($db) { |
|
|
$query = "UPDATE user_sessions SET is_active = 0 WHERE session_id = :session_id"; |
|
|
$stmt = $db->prepare($query); |
|
|
$stmt->bindParam(":session_id", $session_id); |
|
|
$stmt->execute(); |
|
|
} |
|
|
} catch(Exception $e) { |
|
|
error_log("Logout error: " . $e->getMessage()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$_SESSION = array(); |
|
|
|
|
|
|
|
|
if (ini_get("session.use_cookies")) { |
|
|
$params = session_get_cookie_params(); |
|
|
setcookie(session_name(), '', time() - 42000, |
|
|
$params["path"], $params["domain"], |
|
|
$params["secure"], $params["httponly"] |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
session_destroy(); |
|
|
|
|
|
|
|
|
header('Content-Type: application/json'); |
|
|
echo json_encode(array( |
|
|
"success" => true, |
|
|
"message" => "Logged out successfully", |
|
|
"redirect" => "../index.html" |
|
|
)); |
|
|
exit; |
|
|
?> |