From: Jan Schneider Date: Wed, 25 Aug 2010 11:29:38 +0000 (+0200) Subject: Fix reading sessions if session_save_path() is empty. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=bd99e4fd1f8d4d7dfdbf7a325f905f45c38f3c9f;p=horde.git Fix reading sessions if session_save_path() is empty. --- diff --git a/framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php b/framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php index 7e9c95e9d..42a131605 100644 --- a/framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php +++ b/framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php @@ -16,6 +16,13 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base { /** + * Directory with session files. + * + * @var string + */ + protected $_path; + + /** * Constructor. * * @param array $params Parameters. @@ -25,6 +32,11 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base parent::__construct(array_merge($params, array( 'noset' => true ))); + + $this->_path = session_save_path(); + if (!$this->_path) { + $this->_path = Horde_Util::getTempDir(); + } } /** @@ -55,7 +67,7 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base */ protected function _read($id) { - $file = session_save_path() . DIRECTORY_SEPARATOR . 'sess_' . $id; + $file = $this->_path . '/sess_' . $id; $session_data = @file_get_contents($file); if (($session_data === false) && $this->_logger) { $this->_logger->log('Unable to read file: ' . $file, 'ERR'); @@ -114,10 +126,8 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base { $sessions = array(); - $path = session_save_path(); - try { - $di = new DirectoryIterator(empty($path) ? Horde_Util::getTempDir() : $path); + $di = new DirectoryIterator($this->_path); } catch (UnexpectedValueException $e) { return $sessions; } @@ -126,7 +136,7 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base /* Make sure we're dealing with files that start with sess_. */ if ($val->isFile() && (strpos($val->getFilename(), 'sess_') === 0)) { - $sessions[] = substr($entry, strlen('sess_')); + $sessions[] = substr($val->getFilename(), strlen('sess_')); } }