Rozwiązanie na podstawie postu stack overflow.
Dla każdej podstrony z newralgicznymi danymi:
if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $_SESSION['timeout'])
{
header("Location: timeout.php"); // wyloguj i ustaw wiadomość o timeout
exit();
}
$_SESSION['last_activity'] = time();