コード例 #1
0
 function setReturnTo($key, $mode)
 {
     if (SC_Utils_Ex::isAppInnerUrl($_SERVER["HTTP_REFERER"])) {
         $netUrl = new Net_URL($_SERVER["HTTP_REFERER"]);
         $dir = basename(dirname($netUrl->path));
         $file = basename($netUrl->path);
         if (preg_match("{.*(confirm|complete).php}", $file)) {
             GC_Utils_Ex::gfPrintLog($file);
             return;
         }
         switch ($dir) {
             case "au":
             case "docomo":
             case "softbank":
                 break;
             default:
                 $_SESSION[$key] = $netUrl->getURL();
                 break;
         }
     }
 }
 /**
  * 新着情報を取得する.
  *
  * @return array $arrNewsList 新着情報の配列を返す
  */
 function lfGetNews(&$objQuery)
 {
     if (DB_TYPE != 'sqlsrv') {
         return parent::lfGetNews($objQuery);
     } else {
         $objQuery->setOrder('rank DESC ');
         $arrNewsList = $objQuery->select("* ,convert(varchar(4), YEAR(news_date)) + '-' + convert(varchar(2), MONTH(news_date)) + '-' + convert(varchar(10), DAY(news_date)) as news_date_disp", 'dtb_news', 'del_flg = 0');
         // モバイルサイトのセッション保持 (#797)
         if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
             foreach (array_keys($arrNewsList) as $key) {
                 $arrRow =& $arrNewsList[$key];
                 if (SC_Utils_Ex::isAppInnerUrl($arrRow['news_url'])) {
                     $netUrl = new Net_URL($arrRow['news_url']);
                     $netUrl->addQueryString(session_name(), session_id());
                     $arrRow['news_url'] = $netUrl->getURL();
                 }
             }
         }
         return $arrNewsList;
     }
 }
コード例 #3
0
 /**
  * 新着情報を取得する.
  *
  * @return array $arrNewsList 新着情報の配列を返す
  */
 public function lfGetNews($dispNumber, $pageNo, SC_Helper_News_Ex $objNews)
 {
     $arrNewsList = $objNews->getList($dispNumber, $pageNo);
     // モバイルサイトのセッション保持 (#797)
     if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
         foreach ($arrNewsList as $key => $value) {
             $arrRow =& $arrNewsList[$key];
             if (SC_Utils_Ex::isAppInnerUrl($arrRow['news_url'])) {
                 $netUrl = new Net_URL($arrRow['news_url']);
                 $netUrl->addQueryString(session_name(), session_id());
                 $arrRow['news_url'] = $netUrl->getURL();
             }
         }
     }
     return $arrNewsList;
 }
コード例 #4
0
 /**
  * 新着情報を取得する.
  *
  * @return array $arrNewsList 新着情報の配列を返す
  */
 function lfGetNews(&$objQuery)
 {
     $objQuery->setOrder('rank DESC ');
     $arrNewsList = $objQuery->select('* , cast(news_date as date) as news_date_disp', 'dtb_news', 'del_flg = 0');
     // モバイルサイトのセッション保持 (#797)
     if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
         foreach ($arrNewsList as $key => $value) {
             $arrRow =& $arrNewsList[$key];
             if (SC_Utils_Ex::isAppInnerUrl($arrRow['news_url'])) {
                 $netUrl = new Net_URL($arrRow['news_url']);
                 $netUrl->addQueryString(session_name(), session_id());
                 $arrRow['news_url'] = $netUrl->getURL();
             }
         }
     }
     return $arrNewsList;
 }
コード例 #5
0
 /**
  * アプリケーション内でリダイレクトする
  *
  * 内部で生成する URL の searchpart は、下記の順で上書きしていく。(後勝ち)
  * 1. 引数 $inheritQueryString が true の場合、$_SERVER['QUERY_STRING']
  * 2. $location に含まれる searchpart
  * 3. 引数 $arrQueryString
  *
  * @param string $location
  *            「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。
  * @param array $arrQueryString
  *            URL に付加する searchpart
  * @param bool $inheritQueryString
  *            現在のリクエストの searchpart を継承するか
  * @param bool|null $useSsl
  *            true:HTTPSを強制, false:HTTPを強制, null:継承
  * @return void
  * @static
  *
  */
 public function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null)
 {
     // ローカルフックポイント処理
     $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
     if (is_object($objPlugin)) {
         $arrBacktrace = debug_backtrace();
         if (is_object($arrBacktrace[0]['object'])) {
             $pattern = '/^[a-zA-Z0-9_]+$/';
             if (isset($_REQUEST['mode']) && preg_match($pattern, $_REQUEST['mode'])) {
                 $mode = $_REQUEST['mode'];
             }
             $parent_class_name = get_parent_class($arrBacktrace[0]['object']);
             $class_name = get_class($arrBacktrace[0]['object']);
         }
         $objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
         if ($class_name != $parent_class_name) {
             $objPlugin->doAction($class_name . '_action_' . $mode, array($this));
         }
     }
     // url-path → URL 変換
     if ($location[0] === '/') {
         $netUrl = new Net_URL($location);
         $url = $netUrl->getUrl();
     } elseif (strpos($location, HTTPS_URL) === 0 || strpos($location, HTTP_URL) === 0) {
         $url = $location;
     } else {
         $netUrl = new Net_URL(HTTP_URL);
         $netUrl->path = dirname($_SERVER['SCRIPT_NAME']) . '/' . $location;
         $url = $netUrl->getUrl();
     }
     if (!is_bool($useSsl)) {
         $useSsl = SC_Utils_Ex::sfIsHTTPS();
     }
     if ($useSsl) {
         $url = str_replace(HTTP_URL, HTTPS_URL, $url);
     } else {
         $url = str_replace(HTTPS_URL, HTTP_URL, $url);
     }
     // アプリケーション外へのリダイレクトは扱わない
     if (!SC_Utils_Ex::isAppInnerUrl($url)) {
         trigger_error('URL IS APP NOT INNER URL', E_USER_ERROR);
     }
     $netUrl = new Net_URL($url);
     if ($inheritQueryString && !empty($_SERVER['QUERY_STRING'])) {
         $arrQueryStringBackup = $netUrl->querystring;
         // XXX メソッド名は add で始まるが、実際には置換を行う
         $netUrl->addRawQueryString($_SERVER['QUERY_STRING']);
         $netUrl->querystring = array_merge($netUrl->querystring, $arrQueryStringBackup);
     }
     $netUrl->querystring = array_merge($netUrl->querystring, $arrQueryString);
     $session = SC_SessionFactory_Ex::getInstance();
     if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || $session->useCookie() == false) {
         $netUrl->addQueryString(session_name(), session_id());
     }
     if (GC_Utils_Ex::isAdminFunction()) {
         // 管理画面またはmode指定時は付与
         $netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
     }
     $url = $netUrl->getURL();
     header("Location: {$url}");
     exit;
 }