diff --git a/html/data_treatment/AJAX/online_users.php b/html/data_treatment/AJAX/online_users.php index d76ffa588fb647bdd954a421aba4c8faba412208..b367a823b255b8c0e5faa482dcccbeca70967d23 100644 --- a/html/data_treatment/AJAX/online_users.php +++ b/html/data_treatment/AJAX/online_users.php @@ -3,16 +3,12 @@ include '../connect_database.php'; -// Clean up old sessions before retrieving online user count $timeout = 300; // 5 minutes -$cleanup_sql = "DELETE FROM user_sessions WHERE last_activity < (NOW() - INTERVAL $timeout SECOND)"; -$conn->query($cleanup_sql); - // Retrieve online user count -$sql = "SELECT COUNT(*) AS online_users FROM user_sessions"; +$sql = "SELECT COUNT(*) AS online_users FROM user_sessions WHERE last_activity > (NOW() - INTERVAL $timeout SECOND)"; $result = $conn->query($sql); -if ($result->num_rows > 0) { +if ($result) { $row = $result->fetch_assoc(); echo $row['online_users']; } else { @@ -20,4 +16,4 @@ if ($result->num_rows > 0) { } $conn->close(); -?> \ No newline at end of file +?> diff --git a/html/data_treatment/update_activity.php b/html/data_treatment/update_activity.php index 97d1f4e9f53817b14d922da32b316c34391b054a..bc9f4abca0c1ca4cb88bb84dce26c3b063f33956 100644 --- a/html/data_treatment/update_activity.php +++ b/html/data_treatment/update_activity.php @@ -3,18 +3,31 @@ include 'connect_database.php'; + if (isset($_SESSION['username'])) { $username = $_SESSION['username']; - // Update user's last activity timestamp - $sql = "INSERT INTO user_sessions (username) VALUES ($username) - ON DUPLICATE KEY UPDATE last_activity = CURRENT_TIMESTAMP"; - - $conn->query($sql); + $sql = "SELECT * FROM user_sessions WHERE user_id = ?"; + $stmt = $conn->prepare($sql); + $stmt->bind_param("s", $username); + $stmt->execute(); + $result = $stmt->get_result(); + $stmt->close(); - // Clean up old sessions (e.g., sessions older than 5 minutes) - $timeout = 300; // 5 minutes - $cleanup_sql = "DELETE FROM user_sessions WHERE last_activity < (NOW() - INTERVAL $timeout SECOND)"; - $conn->query($cleanup_sql); + if ($result->num_rows > 0) { + // User already exists, update last activity timestamp + $update_sql = "UPDATE user_sessions SET last_activity = CURRENT_TIMESTAMP WHERE user_id = ?"; + $update_stmt = $conn->prepare($update_sql); + $update_stmt->bind_param("s", $username); + $update_stmt->execute(); + $update_stmt->close(); + } else { + // User doesn't exist, insert a new record + $insert_sql = "INSERT IGNORE INTO user_sessions (user_id) VALUES (?)"; + $insert_stmt = $conn->prepare($insert_sql); + $insert_stmt->bind_param("s", $username); + $insert_stmt->execute(); + $insert_stmt->close(); + } } -?> \ No newline at end of file +?>