/** * {@inheritdoc} */ public function read($sessionId) { if (System::getVar('sessionstoretofile')) { $path = DataUtil::formatForOS(session_save_path()); if (file_exists("{$path}/{$sessionId}")) { $result = file_get_contents("{$path}/{$sessionId}"); if ($result) { $result = unserialize($result); } } } else { $result = DBUtil::selectObjectByID('session_info', $sessionId, 'sessid'); if (!$result) { return false; } } if (is_array($result) && isset($result['sessid'])) { $GLOBALS['_ZSession']['obj'] = array('sessid' => $result['sessid'], 'ipaddr' => $result['ipaddr'], 'uid' => $result['uid'], 'lastused' => $result['lastused']); } // security feature to change session id's periodically SessionUtil::random_regenerate(); return isset($result['vars']) ? $result['vars'] : ''; }