Skip to content
Snippets Groups Projects
Commit 6c393c87 authored by totoW's avatar totoW
Browse files

Updated the user count real time so it doesn't do things i don't understand on...

Updated the user count real time so it doesn't do things i don't understand on the database (it destroyed, recreated multiple time the rows for no reason, wth ?)
parent 6d411e6b
No related branches found
No related tags found
No related merge requests found
......@@ -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
?>
......@@ -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
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment