Changeset 19908


Ignore:
Timestamp:
2011/01/13 16:23:02 (10 years ago)
Author:
Seasoft
Message:

#714(パス指定によるリダイレクトの記述を簡潔にする)

Location:
branches/version-2_5-dev/data/class
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/SC_Display.php

    r19832 r19908  
    7373        $this->assignobj($page); 
    7474        $this->response->setResposeBody($this->view->getResponse($page->getTemplate())); 
    75     } 
    76  
    77     /** 
    78      * リダイレクトを行う. 
    79      * 
    80      * SC_Response::sendRedirect() のラッパーです. 
    81      */ 
    82     function redirect($location){ 
    83         $this->response->sendRedirect($location, array(), true); 
    8475    } 
    8576 
  • branches/version-2_5-dev/data/class/SC_Response.php

    r19834 r19908  
    132132 
    133133    /** 
    134      * @param string $location 「url-path」「現在のURLからのパス」「URL」のいずれか 
     134     * アプリケーション内でリダイレクトする 
     135     * 
     136     * @param string $location 「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。 
    135137     * @return void 
    136138     * @static 
     
    171173        } 
    172174 
    173         // アプリケーション内での遷移時の処理 
    174175        $pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/'; 
    175         if (preg_match($pattern, $url)) { 
    176             $netUrl = new Net_URL($url); 
    177             $arrQueryString = array_merge($netUrl->querystring, $arrQueryString); 
    178             $netUrl->querystring = array(); 
    179  
    180             if ($inheritQueryString) { 
    181                 if (!empty($_SERVER['QUERY_STRING'])) { 
    182                     $netUrl->addRawQueryString($_SERVER['QUERY_STRING']); 
    183                 } 
     176 
     177        // アプリケーション外へのリダイレクトは扱わない 
     178        if (preg_match($pattern, $url) === 0) { 
     179            SC_Utils_Ex::sfDispException(); 
     180        } 
     181 
     182        $netUrl = new Net_URL($url); 
     183        $arrQueryString = array_merge($netUrl->querystring, $arrQueryString); 
     184        $netUrl->querystring = array(); 
     185 
     186        if ($inheritQueryString) { 
     187            if (!empty($_SERVER['QUERY_STRING'])) { 
     188                $netUrl->addRawQueryString($_SERVER['QUERY_STRING']); 
    184189            } 
    185  
    186             foreach ($arrQueryString as $key => $val) { 
    187                 $netUrl->addQueryString($key, $val); 
    188             } 
    189  
    190             $url = $netUrl->getURL(); 
    191  
    192             $session = SC_SessionFactory::getInstance(); 
    193             if (SC_MobileUserAgent::isMobile() || $session->useCookie() == false) { 
    194                 $netUrl->addQueryString(session_name(), session_id()); 
    195             } 
    196  
    197             $netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken()); 
    198             $url = $netUrl->getURL(); 
    199         } 
     190        } 
     191 
     192        foreach ($arrQueryString as $key => $val) { 
     193            $netUrl->addQueryString($key, $val); 
     194        } 
     195 
     196        $url = $netUrl->getURL(); 
     197 
     198        $session = SC_SessionFactory::getInstance(); 
     199        if (SC_MobileUserAgent::isMobile() || $session->useCookie() == false) { 
     200            $netUrl->addQueryString(session_name(), session_id()); 
     201        } 
     202 
     203        $netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken()); 
     204        $url = $netUrl->getURL(); 
    200205 
    201206        header("Location: $url"); 
     
    206211     * HTML_PATH からのパスを指定してリダイレクトする 
    207212     * 
    208      * @param string $location /html/ からの相対パス 
     213     * @param string $location /html/ からの相対パス。先頭に / を含むかは任意。「../」の解釈は行なわない。 
    209214     * @return void 
    210215     * @static 
    211216     */ 
    212217    function sendRedirectFromUrlPath($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null) { 
    213         $location = URL_PATH . $location; 
     218        $location = URL_PATH . ltrim($location, '/'); 
    214219        SC_Response_Ex::sendRedirect($location, $arrQueryString, $inheritQueryString, $useSsl); 
    215220    } 
  • branches/version-2_5-dev/data/class/pages/LC_Page.php

    r19817 r19908  
    196196     */ 
    197197    function sendRedirect($url, $isMobile = false) { 
    198 echo "SC_Response.php::sendRedirect()に移行してね。"; 
     198echo 'SC_Response_Ex::sendRedirect()に移行してね。'; 
    199199exit; 
    200200 
     
    383383     */ 
    384384    function reload($queryString = array(), $removeQueryString = false) { 
    385 echo "SC_Display.php::reload()に移行してね。"; 
     385echo 'SC_Response_Ex::reload()に移行してね。'; 
    386386exit; 
    387387 
  • branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php

    r19834 r19908  
    5555        $objSess->logout(); 
    5656 
    57         SC_Response_Ex::sendRedirectFromUrlPath('/' . ADMIN_DIR . DIR_INDEX_URL); 
     57        SC_Response_Ex::sendRedirectFromUrlPath(ADMIN_DIR . DIR_INDEX_URL); 
    5858    } 
    5959 
  • branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_FileView.php

    r19805 r19908  
    9191            print($objFileManager->sfReadFile(USER_REALDIR . $_GET['file'])); 
    9292        } else { 
    93             $this->objDisplay->redirect(USER_URL . $_GET['file']); 
     93            SC_Response_Ex::sendRedirect(USER_URL . $_GET['file']); 
    9494            exit; 
    9595        } 
  • branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php

    r19833 r19908  
    9090        $url = $this->getLocation(ADMIN_SYSTEM_URL_PATH) 
    9191             . '?pageno=' . $this->objForm->getValue('pageno'); 
    92         $this->objDisplay->redirect($url); 
     92        SC_Response_Ex::sendRedirect($url); 
    9393    } 
    9494 
  • branches/version-2_5-dev/data/class/pages/cart/LC_Page_Cart.php

    r19845 r19908  
    121121                $objCartSess->saveCurrentCart($uniqid, $cartKey); 
    122122                // 購入ページへ 
    123                 $this->objDisplay->redirect(SHOPPING_URL); 
     123                SC_Response_Ex::sendRedirect(SHOPPING_URL); 
    124124                exit; 
    125125            } 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage.php

    r19881 r19908  
    176176                    if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
    177177                        if (!$objCustomer->hasValue('email_mobile')) { 
    178                             $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php")); 
     178                            SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php'); 
    179179                            exit; 
    180180                        } 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Favorite.php

    r19807 r19908  
    214214                    if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
    215215                        if (!$objCustomer->hasValue('email_mobile')) { 
    216                             $this->objDisplay->redirect($this->getLocation("../entry/email_mobile.php")); 
     216                            SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php'); 
    217217                        } 
    218218                    } 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r19907 r19908  
    153153                        SC_Response_Ex::sendRedirect(CART_URL_PATH); 
    154154                    } else { 
    155                         $this->objDisplay->redirect(SHOPPING_URL); 
     155                        SC_Response_Ex::sendRedirect(SHOPPING_URL); 
    156156                    } 
    157157                    exit; 
Note: See TracChangeset for help on using the changeset viewer.