Ignore:
Timestamp:
2012/03/11 15:22:55 (12 years ago)
Author:
Seasoft
Message:

#1694 (SC_SessionFactory#getInstance モバイルの default が不自然な動作)
#1695 (同一ホストに複数の EC-CUBE や他の PHP アプリケーションを導入した場合、セッションキーを共有する)
#1613 (typo修正・ソース整形・ソースコメントの改善)

Location:
branches/version-2_12-dev/data/class
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Cookie.php

    r21514 r21624  
    2222 */ 
    2323 
    24 /* 日時表示用クラス */ 
     24/** 
     25 * クッキー用クラス 
     26 * 
     27 */ 
    2528class SC_Cookie { 
    2629 
     
    3538    // クッキー書き込み 
    3639    function setCookie($key, $val) { 
    37         setcookie($key, $val, $this->expire, '/', DOMAIN_NAME); 
     40        setcookie($key, $val, $this->expire, ROOT_URLPATH, DOMAIN_NAME); 
    3841    } 
    3942 
    40     // クッキー取得 
     43    /** 
     44     * クッキー取得 
     45     * 
     46     * EC-CUBE をURLパスルート以外にインストールしている場合、上位ディレクトリの値も(劣後ではあるが)取得する点に留意。 
     47     */ 
    4148    function getCookie($key) { 
    4249        return isset($_COOKIE[$key]) ? $_COOKIE[$key] : null; 
  • branches/version-2_12-dev/data/class/SC_SessionFactory.php

    r21526 r21624  
    6969            // クッキーを使用する 
    7070            case 'useCookie': 
     71            default: 
    7172                // モバイルの場合はSC_SessionFactory_UseRequestを使用する 
    7273                if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) { 
    7374                    $session = new SC_SessionFactory_UseRequest; 
    7475                    $session->setState('mobile'); 
    75                     break; 
     76                } else { 
     77                    $session = new SC_SessionFactory_UseCookie; 
    7678                } 
    77             default: 
    78                 $session = new SC_SessionFactory_UseCookie; 
    7979                break; 
    8080        } 
  • branches/version-2_12-dev/data/class/sessionfactory/SC_SessionFactory_UseCookie.php

    r21514 r21624  
    4141     * セッションパラメーターの指定 
    4242     * ・ブラウザを閉じるまで有効 
    43      * ・すべてのパスで有効 
    44      *   FIXME 多分、同一ホスト名に複数の EC-CUBE をインストールした場合に望ましくない状態である。特段の事由がなければ、アプリケーションルートを指定すべきだし、あればコメントに残すべき。 
     43     * ・EC-CUBE ルート配下で有効 
    4544     * ・同じドメイン間で共有 
     45     * FIXME セッションキーのキーが PHP デフォルトのため、上位ディレクトリーで定義があると、その値で動作すると考えられる。 
    4646     **/ 
    4747    function initSession() { 
    4848        ini_set('session.cache_limiter', 'none'); 
    4949        if (session_id() === '') { 
    50             session_set_cookie_params(0, '/', DOMAIN_NAME); 
     50            session_set_cookie_params(0, ROOT_URLPATH, DOMAIN_NAME); 
    5151            if (!ini_get('session.auto_start')) { 
    5252                // セッション開始 
Note: See TracChangeset for help on using the changeset viewer.