本文整理汇总了PHP中Eccube\Framework\Util\Utils::sfIsHTTPS方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::sfIsHTTPS方法的具体用法?PHP Utils::sfIsHTTPS怎么用?PHP Utils::sfIsHTTPS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Framework\Util\Utils
的用法示例。
在下文中一共展示了Utils::sfIsHTTPS方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
/**
* Page を初期化する.
*
* @return void
*/
public function init()
{
$this->template = MAIN_FRAME;
//IP制限チェック
$allow_hosts = unserialize(ADMIN_ALLOW_HOSTS);
if (is_array($allow_hosts) && count($allow_hosts) > 0) {
if (array_search($_SERVER['REMOTE_ADDR'], $allow_hosts) === FALSE) {
Utils::sfDispError(AUTH_ERROR);
}
}
//SSL制限チェック
if (ADMIN_FORCE_SSL == TRUE) {
if (Utils::sfIsHTTPS() === false) {
Application::alias('eccube.response')->sendRedirect($_SERVER['REQUEST_URI'], $_GET, FALSE, TRUE);
}
}
$this->tpl_authority = $_SESSION['authority'];
// ディスプレイクラス生成
$this->objDisplay = Application::alias('eccube.display');
// スーパーフックポイントを実行.
$objPlugin = PluginHelper::getSingletonInstance($this->plugin_activate_flg);
$objPlugin->doAction('LC_Page_preProcess', array($this));
// トランザクショントークンの検証と生成
$this->doValidToken(true);
$this->setTokenTo();
// ローカルフックポイントを実行
$parent_class_name = get_parent_class($this);
$objPlugin->doAction($parent_class_name . '_action_before', array($this));
$class_name = get_class($this);
if ($class_name != $parent_class_name) {
$objPlugin->doAction($class_name . '_action_before', array($this));
}
}
示例2: sendRedirect
/**
* アプリケーション内でリダイレクトする
*
* 内部で生成する 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 = PluginHelper::getSingletonInstance();
if (is_object($objPlugin)) {
$arrBacktrace = debug_backtrace();
if (is_object($arrBacktrace[0]['object']) && method_exists($arrBacktrace[0]['object'], 'getMode')) {
$parent_class_name = get_parent_class($arrBacktrace[0]['object']);
$objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
$class_name = get_class($arrBacktrace[0]['object']);
if ($class_name != $parent_class_name) {
$objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($this));
}
} elseif (is_object($arrBacktrace[0]['object'])) {
$pattern = '/^[a-zA-Z0-9_]+$/';
$mode = null;
if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) {
$mode = $_GET['mode'];
} elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) {
$mode = $_POST['mode'];
}
$parent_class_name = get_parent_class($arrBacktrace[0]['object']);
$objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
$class_name = get_class($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);
$location = $netUrl->getUrl();
}
// URL の場合
if (preg_match('/^https?:/', $location)) {
$url = $location;
if (is_bool($useSsl)) {
if ($useSsl) {
$pattern = '/^' . preg_quote(HTTP_URL, '/') . '(.*)/';
$replacement = HTTPS_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
} else {
$pattern = '/^' . preg_quote(HTTPS_URL, '/') . '(.*)/';
$replacement = HTTP_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
}
}
// 現在のURLからのパス
} else {
if (!is_bool($useSsl)) {
$useSsl = Utils::sfIsHTTPS();
}
$netUrl = new \Net_URL($useSsl ? HTTPS_URL : HTTP_URL);
$netUrl->path = dirname($_SERVER['SCRIPT_NAME']) . '/' . $location;
$url = $netUrl->getUrl();
}
$pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/';
// アプリケーション外へのリダイレクトは扱わない
if (preg_match($pattern, $url) === 0) {
trigger_error('', 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 = SessionFactory::getInstance();
if (Application::alias('eccube.display')->detectDevice() == DEVICE_TYPE_MOBILE || $session->useCookie() == false) {
$netUrl->addQueryString(session_name(), session_id());
}
$netUrl->addQueryString(TRANSACTION_ID_NAME, SessionHelper::getToken());
$url = $netUrl->getURL();
header("Location: {$url}");
exit;
}
示例3: normalizeHostname
/**
* ホスト名を正規化する
*
* @return void
*/
public function normalizeHostname()
{
if (!USE_NORMALIZE_HOSTNAME || !isset($_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_METHOD'] === 'POST') {
// 処理せず戻る
return;
}
$netUrlRequest = new \Net_URL($_SERVER['REQUEST_URI']);
// 要求を受けたホスト名
$request_hostname = $netUrlRequest->host;
$netUrlCorrect = new \Net_URL(\Eccube\Framework\Util\Utils::sfIsHTTPS() ? HTTPS_URL : HTTP_URL);
// 設定上のホスト名
$correct_hostname = $netUrlCorrect->host;
// ホスト名が不一致の場合
if ($request_hostname !== $correct_hostname) {
// ホスト名を書き換え
$netUrlRequest->host = $correct_hostname;
// 正しい URL
$correct_url = $netUrlRequest->getUrl();
// 警告
$msg = 'ホスト名不一致を検出。リダイレクト実行。';
$msg .= '要求値=' . var_export($request_hostname, true) . ' ';
$msg .= '設定値=' . var_export($correct_hostname, true) . ' ';
$msg .= 'リダイレクト先=' . var_export($correct_url, true) . ' ';
trigger_error($msg, E_USER_WARNING);
// リダイレクト(恒久的)
Application::alias('eccube.response')->sendHttpStatus(301);
Application::alias('eccube.response')->sendRedirect($correct_url);
}
}
示例4: checkOperationAuth
/**
* オペレーションの実行権限をチェックする
*
* @param string オペレーション名
* @param array リクエストパラメータ
* @return boolean 権限がある場合 true; 無い場合 false
*/
protected function checkOperationAuth($operation_name, &$arrParam, &$arrApiConfig)
{
if (Utils::isBlank($operation_name)) {
return false;
}
$arrAuthTypes = explode('|', $arrApiConfig['auth_types']);
$result = false;
foreach ($arrAuthTypes as $auth_type) {
$ret = false;
switch ($auth_type) {
case self::API_AUTH_TYPE_REFERER:
$ret = static::checkReferer();
break;
case self::API_AUTH_TYPE_SESSION_TOKEN:
$ret = SessionHelper::isValidToken(false);
break;
case self::API_AUTH_TYPE_API_SIGNATURE:
$ret = static::checkApiSignature($operation_name, $arrParam, $arrApiConfig);
break;
case self::API_AUTH_TYPE_CUSTOMER:
$ret = static::checkCustomerAccount($arrParam['login_email'], $arrParam['login_password']);
break;
case self::API_AUTH_TYPE_MEMBER:
$ret = static::checkMemberAccount($arrParam['member_id'], $arrParam['member_password']);
break;
case self::API_AUTH_TYPE_CUSTOMER_LOGIN_SESSION:
/* @var $objCustomer Customer */
$objCustomer = Application::alias('eccube.customer');
$ret = $objCustomer->isLoginSuccess();
break;
case self::API_AUTH_TYPE_MEMBER_LOGIN_SESSION:
$ret = Utils::sfIsSuccess(new Session(), false);
break;
case self::API_AUTH_TYPE_IP:
$ret = static::checkIp($operation_name);
break;
case self::API_AUTH_TYPE_HOST:
$ret = static::checkHost($operation_name);
break;
case self::API_AUTH_TYPE_SSL:
$ret = Utils::sfIsHTTPS();
break;
case self::API_AUTH_TYPE_OPEN:
$result = true;
break 2;
// foreachも抜ける
// foreachも抜ける
default:
$ret = false;
break;
}
if ($ret === true) {
$result = true;
} else {
$result = false;
break;
// 1つでもfalseがあれば,その時点で終了
}
}
return $result;
}
示例5: getLocation
/**
* $path から URL を取得する.
*
* 以下の順序で 引数 $path から URL を取得する.
* 1. realpath($path) で $path の 絶対パスを取得
* 2. $_SERVER['DOCUMENT_ROOT'] と一致する文字列を削除
* 3. $useSSL の値に応じて, HTTP_URL 又は, HTTPS_URL を付与する.
*
* 返り値に, QUERY_STRING を含めたい場合は, key => value 形式
* の配列を $param へ渡す.
*
* @access protected
* @param string $path 結果を取得するためのパス
* @param array $param URL に付与するパラメーターの配列
* @param mixed $useSSL 結果に HTTPS_URL を使用する場合 true,
* HTTP_URL を使用する場合 false,
* デフォルト 'escape' 現在のスキーマを使用
* @return string $path の存在する http(s):// から始まる絶対パス
* @see \Net_URL
*/
public function getLocation($path, $param = array(), $useSSL = 'escape')
{
$rootPath = $this->getRootPath($path);
// スキーマを定義
if ($useSSL === true) {
$url = HTTPS_URL . $rootPath;
} elseif ($useSSL === false) {
$url = HTTP_URL . $rootPath;
} elseif ($useSSL == 'escape') {
if (Utils::sfIsHTTPS()) {
$url = HTTPS_URL . $rootPath;
} else {
$url = HTTP_URL . $rootPath;
}
} else {
die("[BUG] Illegal Parametor of \$useSSL ");
}
$netURL = new \Net_URL($url);
// QUERY_STRING 生成
foreach ($param as $key => $val) {
$netURL->addQueryString($key, $val);
}
return $netURL->getURL();
}