What are best practices for handling session timeouts and user inactivity in PHP applications?

Session timeouts and user inactivity can be handled in PHP applications by setting session expiration times and implementing a mechanism to check for user activity. One common approach is to use a combination of session timeouts and JavaScript to detect user activity and refresh the session accordingly.

// Set session timeout to 30 minutes
ini_set('session.gc_maxlifetime', 1800);

// Start the session
session_start();

// Check for user activity and refresh session
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    session_unset();
    session_destroy();
    session_start();
}
$_SESSION['LAST_ACTIVITY'] = time();