How can PHP beginners effectively implement features like tracking online users in a forum?
To track online users in a forum, beginners can use sessions to store user information and update a database with their online status. By setting a session variable when a user logs in and updating it periodically, you can keep track of who is currently online in the forum.
session_start();
// Update user's online status in the database
if(isset($_SESSION['user_id'])) {
$user_id = $_SESSION['user_id'];
$last_activity = time();
// Update user's last activity time in the database
// Example SQL query: UPDATE users SET last_activity = $last_activity WHERE user_id = $user_id
}
// Retrieve online users from the database
$online_users = array();
$timeout = 300; // 5 minutes in seconds
$current_time = time();
// Select users whose last activity time is within the timeout period
// Example SQL query: SELECT * FROM users WHERE last_activity > ($current_time - $timeout)
foreach($online_users as $user) {
echo $user['username'] . " is online<br>";
}