From d8f9a96deafd7989085e870cad1699e80351d12d Mon Sep 17 00:00:00 2001
From: Cameron <e107inc@gmail.com>
Date: Fri, 18 Jun 2021 09:44:26 -0700
Subject: [PATCH] Issue #4520 Possible fix for session duration. (testing
 needed)

---
 e107_admin/prefs.php              | 2 +-
 e107_handlers/session_handler.php | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/e107_admin/prefs.php b/e107_admin/prefs.php
index 65d1dbead..57f7d4fac 100644
--- a/e107_admin/prefs.php
+++ b/e107_admin/prefs.php
@@ -1505,7 +1505,7 @@ $text .= "
 					<tr>
 						<td><label for='session-lifetime'>".PRFLAN_272."</label>".$frm->help(PRFLAN_273)."</td>
 						<td>
-							".$frm->number('session_lifetime', varset($pref['session_lifetime']), 6)."
+							".$frm->number('session_lifetime', varset($pref['session_lifetime']), 86400)."
 						</td>
 					</tr>
 					";
diff --git a/e107_handlers/session_handler.php b/e107_handlers/session_handler.php
index 528c7cce3..ab82667a0 100644
--- a/e107_handlers/session_handler.php
+++ b/e107_handlers/session_handler.php
@@ -216,7 +216,7 @@ class e_session
 
             $config['SavePath']     = e107::getPref('session_save_path', false); // FIXME - new pref
             $config['SaveMethod']   = e107::getPref('session_save_method', $saveMethod);
-            $options['lifetime']    = (integer)e107::getPref('session_lifetime', 86400);
+            $options['lifetime']    = (int) e107::getPref('session_lifetime', 86400);
             $options['path']        = e107::getPref('session_cookie_path', ''); // FIXME - new pref
             $options['secure']      = e107::getPref('ssl_enabled', false); //
 
@@ -226,6 +226,8 @@ class e_session
             {
                 ini_set('session.cookie_secure', 1);
             }
+
+            ini_set('session.gc_maxlifetime', $options['lifetime']);
         }
 
         if (defined('SESSION_SAVE_PATH')) // safer than a pref.