What best practices should be followed when implementing user online status functionality in PHP?
When implementing user online status functionality in PHP, it is important to regularly update a user's last activity timestamp in the database and check this timestamp to determine if the user is currently online. This can be achieved by setting a time limit within which a user is considered online based on their last activity time.
// Update user's last activity timestamp in the database
function updateLastActivity($userId) {
$currentTime = time();
// Update the last_activity field in the users table for the given userId
// Example SQL query: UPDATE users SET last_activity = $currentTime WHERE id = $userId
}
// Check if a user is currently online based on their last activity timestamp
function isUserOnline($lastActivity) {
$onlineTimeLimit = 300; // 5 minutes in seconds
$currentTime = time();
if (($currentTime - $lastActivity) <= $onlineTimeLimit) {
return true;
} else {
return false;
}
}
// Example of updating user's last activity timestamp
updateLastActivity(1);
// Example of checking if a user is online
$lastActivity = 1609459200; // Assuming the user's last activity timestamp is stored in the database
if (isUserOnline($lastActivity)) {
echo "User is online";
} else {
echo "User is offline";
}