Changeset 15301


Ignore:
Timestamp:
2007/08/17 13:53:16 (13 years ago)
Author:
nanasess
Message:

URL を扱う関数で Net_URL を使うように修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/LC_Page.php

    r15218 r15301  
    55 * http://www.lockon.co.jp/ 
    66 */ 
     7 
     8// {{{ requires 
     9require_once(DATA_PATH . 'module/Net/URL.php'); 
    710 
    811/** 
     
    8992     * @return void|boolean $url に SITE_URL 及び, SSL_URL を含まない場合 false, 
    9093     *                       正常に遷移可能な場合は, $url の URL へ遷移する. 
     94     * @see Net_URL 
    9195     */ 
    9296    function sendRedirect($url) { 
     
    9599                          . "|" . preg_quote(SSL_URL, '/') . ")/", $url)) { 
    96100 
    97             $suffix = "?"; 
     101            $netURL = new Net_URL($url); 
    98102            if (!empty($_SERVER['QUERY_STRING'])) { 
    99                 $suffix = "&"; 
     103                $netURL->addRawQueryString($_SERVER['QUERY_STRING']); 
    100104            } 
    101             header("Location: " . $url . $suffix . TRANSACTION_ID_NAME . "=" . $this->getToken()); 
     105            $netURL->addQueryString(TRANSACTION_ID_NAME, $this->getToken()); 
     106            header("Location: " . $netURL->getURL()); 
    102107        } 
    103108        return false; 
     
    186191     *                              $_SERVER['DOCUMENT_ROOT'] が付与される. 
    187192     * @return string $path の存在する http(s):// から始まる絶対パス 
     193     * @see Net_URL 
    188194     */ 
    189195    function getLocation($path, $param = array(), $useSSL = false, $documentRoot = "") { 
     
    216222        } 
    217223 
     224        $netURL = new Net_URL($url); 
    218225        // QUERY_STRING 生成 
    219         $queryString = ""; 
    220         $i = count($param); 
    221226        foreach ($param as $key => $val) { 
    222             $queryString .= $key . "=" . $val; 
    223  
    224             if ($i > 1) { 
    225                 $queryString .= "&"; 
     227            $netURL->addQueryString($key, $val); 
     228        } 
     229 
     230        return $netURL->getURL(); 
     231    } 
     232 
     233    /** 
     234     * ページをリロードする. 
     235     * 
     236     * 引数 $queryString に, $_SERVER['QUERY_STRING'] の値を使用してはならない. 
     237     * この関数は, 内部で LC_Page::sendRedirect() を使用するため, 
     238     * $_SERVER['QUERY_STRING'] の値は自動的に付与される. 
     239     * 
     240     * @param array $queryString QueryString の配列 
     241     * @return void 
     242     * @see Net_URL 
     243     */ 
     244    function reload($queryString = array()) { 
     245 
     246        // 現在の URL を取得 
     247        $netURL = new Net_URL(); 
     248 
     249        // QueryString を付与 
     250        if (!empty($queryString)) { 
     251            foreach ($queryString as $key => $val) { 
     252                $netURL->addQueryString($key, $val); 
    226253            } 
    227             $i--; 
    228         } 
    229  
    230         // QUERY_STRING が存在する場合は付与して返す. 
    231         if (empty($queryString)) { 
    232             return $url; 
    233         } else { 
    234             return $url . "?" . $queryString; 
    235         } 
     254        } 
     255        $this->sendRedirect($netURL->getURL()); 
    236256    } 
    237257 
Note: See TracChangeset for help on using the changeset viewer.