Exemplo n.º 1
0
 static function CheckCookie(&$futurebb_user)
 {
     global $base_config, $db;
     $futurebb_user = array();
     if (isset($_COOKIE[$base_config['cookie_name']])) {
         $cookie = base64_decode($_COOKIE[$base_config['cookie_name']]);
     } else {
         self::Guest();
         return;
     }
     $parts = explode(chr(1), $cookie);
     if (sizeof($parts) < 3) {
         self::Guest();
         return;
     } else {
         $id = intval($parts[0]);
         $hash = $parts[1];
         self::$randid = $parts[2];
     }
     $result = $db->query('SELECT u.*,g.* FROM `#^users` AS u LEFT JOIN `#^user_groups` AS g ON g.g_id=u.group_id WHERE u.id=' . $id) or error('Failed to check user', __FILE__, __LINE__, $db->error());
     $user_info = $db->fetch_assoc($result);
     if ($id != 0) {
         if ($hash != futurebb_hash($user_info['password'] . $_SERVER['HTTP_USER_AGENT'])) {
             self::Guest();
             return;
         }
         $futurebb_user = $user_info;
         $futurebb_user['notifications_count'] = $db->num_rows($db->query('SELECT type, send_time, contents FROM `#^notifications` WHERE user='******'id'] . ' AND read_time = 0'));
         //self::LoadNotifications();
         self::CheckPromotion();
     } else {
         self::Guest();
         return;
     }
 }