コード例 #1
0
ファイル: Session.php プロジェクト: hahuunguyen/DTUI_201105
 /**
  * This simply gets public session, from cookies if necessary.
  *
  * @param Zend_Controller_Request_Http $request
  *
  * @return XenForo_Session
  */
 public static function getPublicSession(Zend_Controller_Request_Http $request)
 {
     $session = new XenForo_Session();
     $session->start();
     if (!$session->sessionExists()) {
         $cookiePrefix = XenForo_Application::get('config')->cookie->prefix;
         $userCookie = $request->getCookie($cookiePrefix . 'user');
         if ($userCookie) {
             if ($userId = XenForo_Model::create('XenForo_Model_User')->loginUserByRememberCookie($userCookie)) {
                 $session->changeUserId($userId);
             } else {
                 XenForo_Helper_Cookie::deleteCookie('user', true);
             }
         }
         if (!empty($_SERVER['HTTP_USER_AGENT'])) {
             $session->set('userAgent', $_SERVER['HTTP_USER_AGENT']);
             $session->set('isRobot', self::isRobot($_SERVER['HTTP_USER_AGENT']));
         }
         if (!empty($_SERVER['HTTP_REFERER'])) {
             $session->set('referer', $_SERVER['HTTP_REFERER']);
             $session->set('fromSearch', self::isSearchReferer($_SERVER['HTTP_REFERER']));
         }
     }
     return $session;
 }