From 8b57933957f439ef4ba65eac5a575c18c30c1bdb Mon Sep 17 00:00:00 2001 From: arlomedia Date: Thu, 26 Jun 2025 12:32:02 -0700 Subject: [PATCH 1/2] Issue 8134 Simplify the session lifetime calculations and always use the setting from the user interface. --- Sources/Session.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Sources/Session.php b/Sources/Session.php index 790da23f90..45829d2ceb 100644 --- a/Sources/Session.php +++ b/Sources/Session.php @@ -158,11 +158,6 @@ public function destroy(string $session_id): bool */ public function gc(int $max_lifetime): int|false { - // Just set to the default or lower? Ignore it for a higher value. (hopefully) - if (!empty(Config::$modSettings['databaseSession_lifetime']) && ($max_lifetime <= 1440 || Config::$modSettings['databaseSession_lifetime'] > $max_lifetime)) { - $max_lifetime = max(Config::$modSettings['databaseSession_lifetime'], 60); - } - // Clean up after yerself ;). $session_update = Db::$db->query( 'DELETE FROM {db_prefix}sessions @@ -231,9 +226,8 @@ public static function load(): void session_set_save_handler(new self(), true); @ini_set('session.gc_probability', '1'); - } elseif (ini_get('session.gc_maxlifetime') <= 1440 && !empty(Config::$modSettings['databaseSession_lifetime'])) { - @ini_set('session.gc_maxlifetime', max(Config::$modSettings['databaseSession_lifetime'], 60)); } + @ini_set('session.gc_maxlifetime', max($modSettings['databaseSession_lifetime'], 60)); // Use cache setting sessions? if (empty(Config::$modSettings['databaseSession_enable']) && !empty(CacheApi::$enable) && php_sapi_name() != 'cli') { From eb64386122d7b8f951a40867127e77fe539c5536 Mon Sep 17 00:00:00 2001 From: arlomedia Date: Thu, 26 Jun 2025 17:28:24 -0700 Subject: [PATCH 2/2] Update Sources/Session.php Co-authored-by: John Rayes --- Sources/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Session.php b/Sources/Session.php index 45829d2ceb..8caaa498a6 100644 --- a/Sources/Session.php +++ b/Sources/Session.php @@ -227,7 +227,7 @@ public static function load(): void @ini_set('session.gc_probability', '1'); } - @ini_set('session.gc_maxlifetime', max($modSettings['databaseSession_lifetime'], 60)); + @ini_set('session.gc_maxlifetime', max(Config::$modSettings['databaseSession_lifetime'], 60)); // Use cache setting sessions? if (empty(Config::$modSettings['databaseSession_enable']) && !empty(CacheApi::$enable) && php_sapi_name() != 'cli') {