コード例 #1
0
ファイル: SC_Utils.php プロジェクト: nassos9090/plugin
 /**
  * 前方互換用
  *
  * @deprecated 2.12.0 GC_Utils_Ex::isAdminFunction を使用すること
  */
 function sfIsAdminFunction()
 {
     trigger_error('前方互換用メソッドが使用されました。', E_USER_WARNING);
     return GC_Utils_Ex::isAdminFunction();
 }
コード例 #2
0
 /**
  * Page のレスポンス送信.
  *
  * @return void
  */
 function sendResponse()
 {
     $this->adminPage = GC_Utils_Ex::isAdminFunction();
     if ($this->adminPage) {
         $this->tpl_mainpage = 'login_error.tpl';
         $this->template = LOGIN_FRAME;
         $this->objDisplay->prepare($this, true);
     } else {
         $this->objDisplay->prepare($this);
     }
     $this->objDisplay->response->write();
 }
コード例 #3
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;
 }
コード例 #4
0
ファイル: GC_Utils.php プロジェクト: nassos9090/plugin
 /**
  * ログの出力を行う
  *
  * エラー・警告は trigger_error() を経由して利用すること。(補足の出力は例外。)
  * @param string $msg
  * @param string $path
  * @param bool $verbose 冗長な出力を行うか
  */
 function gfPrintLog($msg, $path = '', $verbose = USE_VERBOSE_LOG)
 {
     // 日付の取得
     $today = date('Y/m/d H:i:s');
     // 出力パスの作成
     if (strlen($path) === 0) {
         $path = GC_Utils_Ex::isAdminFunction() ? ADMIN_LOG_REALFILE : LOG_REALFILE;
     }
     $msg = "{$today} [{$_SERVER['SCRIPT_NAME']}] {$msg} from {$_SERVER['REMOTE_ADDR']}\n";
     if ($verbose) {
         if (GC_Utils_Ex::isFrontFunction()) {
             $msg .= 'customer_id = ' . $_SESSION['customer']['customer_id'] . "\n";
         }
         if (GC_Utils_Ex::isAdminFunction()) {
             $msg .= 'login_id = ' . $_SESSION['login_id'] . '(' . $_SESSION['authority'] . ')' . '[' . session_id() . ']' . "\n";
         }
         $msg .= GC_Utils_Ex::toStringBacktrace(GC_Utils_Ex::getDebugBacktrace());
     }
     error_log($msg, 3, $path);
     // ログテーション
     GC_Utils_Ex::gfLogRotation(MAX_LOG_QUANTITY, MAX_LOG_SIZE, $path);
 }
コード例 #5
0
ファイル: SC_Utils.php プロジェクト: Rise-Up-Cambodia/Rise-Up
 /**
  * 前方互換用
  *
  * @deprecated 2.12.0 GC_Utils_Ex::isAdminFunction を使用すること
  */
 function sfIsAdminFunction()
 {
     trigger_error(t("c_A method for upward compatibility was used._01"), E_USER_WARNING);
     return GC_Utils_Ex::isAdminFunction();
 }