What are potential drawbacks of using a timer-based approach for session expiration in PHP?

One potential drawback of using a timer-based approach for session expiration in PHP is that it may not accurately reflect the user's activity on the website. If a user is actively engaging with the site but the timer expires, they may be logged out unexpectedly. To solve this issue, you can implement a more user-centric approach by resetting the expiration timer each time the user interacts with the website.

// Extend session expiration time on user interaction
if (isset($_SESSION['last_activity']) && time() - $_SESSION['last_activity'] > 1800) {
    session_regenerate_id(true);
    $_SESSION['last_activity'] = time();
}

// Update last activity time on each page load
$_SESSION['last_activity'] = time();