From e2bc81f65452edfe334193041bd00f01d3062ed5 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 12 Jan 2017 12:06:25 -0800 Subject: [PATCH] Issue #1245, #1523 Possible fix for servers using memcache as a session handler. --- e107_admin/phpinfo.php | 6 ++++-- e107_handlers/session_handler.php | 14 ++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/e107_admin/phpinfo.php b/e107_admin/phpinfo.php index 97685cf9d..b8326c945 100644 --- a/e107_admin/phpinfo.php +++ b/e107_admin/phpinfo.php @@ -60,10 +60,12 @@ $security_risks = array( $mes->addWarning("".$risk.": ".$diz); } } - + + $sessionSaveMethod = ini_get('session.save_handler'); + if($sessionSavePath = ini_get('session.save_path')) { - if(!is_writable($sessionSavePath)) + if(!is_writable($sessionSavePath) && $sessionSaveMethod === 'files') { $mes->addError("session.save_path is not writable! That can cause major issues with your site."); } diff --git a/e107_handlers/session_handler.php b/e107_handlers/session_handler.php index b8d78a2b3..98cd0ce23 100644 --- a/e107_handlers/session_handler.php +++ b/e107_handlers/session_handler.php @@ -203,8 +203,14 @@ class e_session if(!defined('E107_INSTALL')) { + $systemSaveMethod = ini_get('session.save_handler'); + + e107::getDebug()->log("Save Method:".$systemSaveMethod); + + $saveMethod = (!empty($systemSaveMethod)) ? $systemSaveMethod : 'files'; + $config['SavePath'] = e107::getPref('session_save_path', false); // FIXME - new pref - $config['SaveMethod'] = e107::getPref('session_save_method', 'files'); // FIXME - new pref + $config['SaveMethod'] = e107::getPref('session_save_method', $saveMethod); // FIXME - new pref $options['lifetime'] = (integer) e107::getPref('session_lifetime', 86400); // $options['path'] = e107::getPref('session_cookie_path', ''); // FIXME - new pref $options['secure'] = e107::getPref('ssl_enabled', false); // @@ -458,7 +464,7 @@ class e_session default: if(!isset($_SESSION)) { - session_module_name('files'); + session_module_name($this->_sessionSaveMethod); } break; } @@ -887,11 +893,11 @@ class e_core_session extends e_session // $details .= print_r($_POST,true); // $details .= "\n_GET:\n"; // $details .= print_r($_GET,true); - if($pref['plug_installed']) + /* if($pref['plug_installed']) { $details .= "\nPlugins:\n"; $details .= print_r($pref['plug_installed'],true); - } + }*/ $details .= "die = ".($die == true ? 'true' : 'false')."\n\n---------------------------------\n\n";