public static function read($session_id) { if (self::$destroyed) { return false; } self::$session_id = $session_id; if (!self::db_table_exists('session', true)) { return (string) @file_get_contents(_UCM_FOLDER . "/temp/sess_{$session_id}"); } $sql = "SELECT `session_data` FROM `" . _DB_PREFIX . "session` WHERE `session_id` = '" . mysql_real_escape_string(self::$session_id) . "'"; $res = qa1($sql); if ($res && isset($res['session_data'])) { $foo = base64_decode($res['session_data'], true); if (!$foo && preg_match('#^!([^!]*)!#', $res['session_data'], $matches)) { $res['session_data'] = preg_replace('#^' . preg_quote($matches[0], '#') . '#', '', $res['session_data']); if (function_exists('mb_detect_encoding') && mb_detect_encoding($res['session_data']) != $matches[1]) { $res['session_data'] = iconv(mb_detect_encoding($res['session_data']), $matches[1], $res['session_data']); } } else { if ($foo) { $res['session_data'] = $foo; } } self::$session_hash = md5($res['session_data']); return $res['session_data']; } return false; }