How can the counter for online users be accurately calculated in the PHP script?
To accurately calculate the counter for online users in a PHP script, you can use sessions to track when a user visits the website and update the counter accordingly. Each time a user accesses the website, increment the counter and store the user's session ID to prevent duplicate counting. When a user leaves the website or their session expires, decrement the counter.
<?php
session_start();
// Check if user has a session ID
if (!isset($_SESSION['user_id'])) {
$_SESSION['user_id'] = session_id();
// Increment online user counter
$online_users = isset($_SESSION['online_users']) ? $_SESSION['online_users'] + 1 : 1;
$_SESSION['online_users'] = $online_users;
}
// Decrement online user counter when session expires
register_shutdown_function(function() {
session_start();
if (isset($_SESSION['user_id'])) {
$online_users = isset($_SESSION['online_users']) ? $_SESSION['online_users'] - 1 : 0;
$_SESSION['online_users'] = $online_users;
}
});
// Display online user count
echo "Online Users: " . $_SESSION['online_users'];
?>