Ejemplo n.º 1
0
 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;
 }