Changeset 19947


Ignore:
Timestamp:
2011/01/17 18:32:35 (10 years ago)
Author:
spiritofof
Message:

#790(カートの「戻る」ボタンが機能していない)対応。prev_urlが利用できないため専用セッション変数を用いる。

  • REFERER妥当性チェック追加。
Location:
branches/version-2_5-dev/data
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/Smarty/templates/default/cart/index.tpl

    r19945 r19947  
    166166                <p> 
    167167                    <!--{if $tpl_prev_url != ""}--> 
    168                         <a href="<!--{$tpl_prev_url}-->" onmouseover="chgImg('<!--{$TPL_DIR}-->img/button/btn_back_on.gif','back');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/button/btn_back.gif','back');"> 
     168                        <a href="<!--{$tpl_prev_url|escape}-->" onmouseover="chgImg('<!--{$TPL_DIR}-->img/button/btn_back_on.gif','back');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/button/btn_back.gif','back');"> 
    169169                            <img src="<!--{$TPL_DIR}-->img/button/btn_back.gif" width="150" height="30" alt="買い物を続ける" name="back" /></a>&nbsp;&nbsp; 
    170170                    <!--{/if}--> 
  • branches/version-2_5-dev/data/Smarty/templates/mobile/cart/index.tpl

    r19945 r19947  
    9797 
    9898<!--{if $tpl_prev_url != ""}--> 
    99     <a href="<!--{$tpl_prev_url}-->">[emoji:69]お買物を続ける</a> 
     99    <a href="<!--{$tpl_prev_url|escape}-->">[emoji:69]お買物を続ける</a> 
    100100<!--{/if}--> 
    101101<!--{/foreach}--> 
  • branches/version-2_5-dev/data/Smarty/templates/sphone/cart/index.tpl

    r19945 r19947  
    167167                <p> 
    168168                    <!--{if $tpl_prev_url != ""}--> 
    169                      <a href="<!--{$tpl_prev_url}-->" class="spbtn spbtn-medeum"> 
     169                     <a href="<!--{$tpl_prev_url|escape}-->" class="spbtn spbtn-medeum"> 
    170170                                    買い物を続ける</a>&nbsp;&nbsp; 
    171171                    <!--{/if}--> 
  • branches/version-2_5-dev/data/class/pages/cart/LC_Page_Cart.php

    r19944 r19947  
    196196            } else { 
    197197                if (preg_match("/entry/", $_SERVER['HTTP_REFERER'])) { 
    198                     $_SESSION['cart_prev_url'] = URL_PATH . 'entry/kiyaku.php'; 
     198                    $_SESSION['cart_prev_url'] = HTTPS_URL . 'entry/kiyaku.php'; 
    199199                } else { 
    200200                    $_SESSION['cart_prev_url'] = $_SERVER['HTTP_REFERER']; 
     
    202202            } 
    203203        } 
    204         $this->tpl_prev_url = $_SESSION['cart_prev_url']; 
     204        // 妥当性チェック 
     205        if (!SC_Utils_Ex::sfIsInternalDomain($_SESSION['cart_prev_url'])) { 
     206            $_SESSION['cart_prev_url'] = ''; 
     207        } 
     208 
     209        $this->tpl_prev_url = (isset($_SESSION['cart_prev_url'])) ? $_SESSION['cart_prev_url'] : ''; 
    205210    } 
    206211 
  • branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Detail.php

    r19944 r19947  
    198198 
    199199                    // カート「戻るボタン」用に保持 
    200                     $_SESSION['cart_referer_url'] = $_SERVER['HTTP_REFERER']; 
     200                    if (SC_Utils_Ex::sfIsInternalDomain($_SERVER['HTTP_REFERER'])) { 
     201                        $_SESSION['cart_referer_url'] = $_SERVER['HTTP_REFERER']; 
     202                    } 
    201203 
    202204                    if (!empty($_POST['gmo_oneclick'])) { 
  • branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_List.php

    r19944 r19947  
    168168 
    169169                // カート「戻るボタン」用に保持 
    170                 $_SESSION['cart_referer_url'] = $_SERVER['HTTP_REFERER']; 
     170                if (SC_Utils_Ex::sfIsInternalDomain($_SERVER['HTTP_REFERER'])) { 
     171                    $_SESSION['cart_referer_url'] = $_SERVER['HTTP_REFERER']; 
     172                } 
    171173 
    172174                SC_Response_Ex::sendRedirect(CART_URLPATH); 
  • branches/version-2_5-dev/data/class/util/SC_Utils.php

    r19912 r19947  
    22302230        return true; 
    22312231    } 
     2232 
     2233    /** 
     2234     * 指定されたURLのドメインが一致するかを返す 
     2235     * 
     2236     * 戻り値:一致(true) 不一致(false) 
     2237     * 
     2238     * @param string $url 
     2239     * @return boolean 
     2240     */ 
     2241    function sfIsInternalDomain($url) { 
     2242        $netURL = new Net_URL(HTTP_URL); 
     2243        $host = $netURL->host; 
     2244        if (!$host) return false; 
     2245        $host = preg_quote($host, "#"); 
     2246        if (!preg_match("#^(http|https)://{$host}#i", $url)) return false; 
     2247        return true; 
     2248    } 
    22322249} 
    22332250?> 
Note: See TracChangeset for help on using the changeset viewer.