| 質問 > フロント機能 > SSL遷移について |
フロント機能
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| patapata |
投稿日時: 2010/9/3 11:21
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
SSL遷移について いつもお世話になっております。
SSLの遷移について、各所でおかしいのですが・・・ これは、一つ一つ直していくしかないのでしょうか? 現状わかっているだけで以下の場所があります。 ・商品購入完了時のトップページへのボタン ・お問い合わせ表示中のヘッダーMYページへ以外の全てのボタン等 ・お問い合わせ完了時のトップページへのボタン ・お届け先指定の戻るボタン ・SSL表示後のヘッダー、会員登録ボタン ・SSL表示後のヘッダー、カゴの中ボタン みなさんは、どう対応しているのでしょうか? ここまでおかしいと、なにか初期設定を失敗したか心配なのですが・・・どうなのでしょうか? 環境: EC-CUBE 2.4.4 OS Linux DBサーバ MySQL 5.0.77 PHP 5.1.6 |
| seasoft |
投稿日時: 2010/9/3 11:29
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: SSL遷移について 過去スレでも話題になっていますが、HTTP/HTTPS の遷移ポリシーが甘いのは既存の不具合です。
(全く、HTTPS が使われないという状況ですと、設定誤りも考えられますが) 下記を参考にバージョン情報をご提供いただくと、EC-CUBE の今後の開発に役立つかもしれません。 http://xoops.ec-cube.net/modules/tinyd0/index.php?id=8
|
| patapata |
投稿日時: 2010/9/3 12:03
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について 失礼しました。
開発環境書き忘れていまして、後で追記したのですが間に合わなかったようです。申し訳ありません。 不具合ですか。 以下の話題をみて、色々と試してみて いたるところにあるのがわかったんですが・・・ http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=4327&forum=10 箇所が多く、一つ一つ確認・修正するのも大変なので 何か手はないか思案中です。 |
| patapata |
投稿日時: 2010/9/3 20:46
対応状況: 確認中
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について 以下の対応を入れ込み検査中です。
対応に誤り等がありましたら、ご教授願います。 ----------------------------------------------------- システム設定で、項目があるものについては、該当の項目を参照させようと思い、以下の項目を変更。 [URL_CART_TOP] URL_DIR . "cart/index.php" → SITE_URL . "cart/index.php" [URL_SITE_TOP] URL_DIR . "cart/index.php" → SITE_URL . "index.php" [LIST_C_HTML] URL_DIR . "products/list.php?mode=search&category_id=" →SITE_URL . "products/list.php?mode=search&category_id=" (上記はあくまで補足です。) 遷移がおかしくなる箇所のtplを変更。 (システム設定まで変更したくない場合は、該当箇所のURL_DIRをSITE_URLに変更するだけでよいと思われます。) 上記だけでは、まだカゴの中のTopの「前のページへ戻る」 ボタン使用時に、前のページがSSLページの場合遷移がおかしくなるので・・・ [SC_CartSession.php] の除外ページとして以下を追加。 // 前頁のURLを記録しておく function setPrevURL($url) { // 前頁として記録しないページを指定する。 $arrExclude = array( "detail_image.php", "/shopping/", "/mypage/", //追加 "/contact/", //追加 "/entry/" //追加 ); $exclude = false; // ページチェックを行う。 foreach($arrExclude as $val) { if(ereg($val, $url)) { $exclude = true; break; } } // 除外ページでない場合は、前頁として記録する。 if(!$exclude) { $_SESSION[$this->key]['prev_url'] = $url; } } |
| patapata |
投稿日時: 2010/9/7 14:38
対応状況: 解決済
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について 結論。システム設定のパラメータ設定を変更する方法は、
別途getRootPath関数が正常に動作しなくなるおそれがあるので、 やめました。 「該当箇所のURL_DIRをSITE_URLに変更」 こちらで対応いたしました。 対応した箇所は、以下の通りです。 (※私の作成中のサイトは、携帯でのアクセスを不可にする予定ですので、携帯アクセスを予定されているかたは、同様処置を携帯サイトにも入れる必要があります。) テンプレート修正 ・ヘッダー:カゴの中、会員登録 ・仮登録完了ページ:トップページへ ・登録完了ページ:トップページへ ・登録内容変更完了ページ:戻る (デフォルトではimageがおかしいです。) ・お問い合わせ完了時:トップページへ ・商品購入完了時:トップページへ ・ブロック表示している、カゴの中を見る、商品カテゴリ PHP修正 ・以下コード修正 [SC_CartSession.php] で除外ページとして以下を追加。 // 前頁のURLを記録しておく function setPrevURL($url) { // 前頁として記録しないページを指定する。 $arrExclude = array( "detail_image.php", "/shopping/", "/mypage/", //追加 "/contact/", //追加 "/entry/", //追加 "/regist/" //追加 ); $exclude = false; // ページチェックを行う。 foreach($arrExclude as $val) { if(ereg($val, $url)) { $exclude = true; break; } } // 除外ページでない場合は、前頁として記録する。 if(!$exclude) { $_SESSION[$this->key]['prev_url'] = $url; } } 以上です。 |
| nanasess |
投稿日時: 2010/9/7 14:52
対応状況: −−−
|
神 ![]() ![]() 登録日: 2006/9/9 居住地: 投稿: 2340 |
Re: SSL遷移について ちょっとオフトピですが,
引用:
そもそも, 外部サイトへのリダイレクトを防止するため, LC_Page::getLocation() 関数では, パスのみ渡せるようにしてあります. SSL_URL へ遷移させたい場合は, LC_Page::getLocation() 関数の第三引数を true にすると良いです. |
| patapata |
投稿日時: 2010/9/7 16:31
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について そうだったのですか。それは気づきませんでした。
しかし、私が気になった点は以下になります。 確認方法: ---------------------------------------------------------- パラメータ設定 「URL_CART_TOP」を以下に変更 URL_DIR . "cart/index.php" → SITE_URL . "cart/index.php" ---------------------------------------------------------- これだけで「カゴの中へ入れる」の動作が変わります。 詳細: 原因を追っかけていってわかったことは、 getLocationの中で呼び出している、getRootPath関数がどうもおかしい・・・ということです。 それ以上は、時間も取れず調査しておりません。 getLocationに渡される$pathはURL_DIRからSITE_URLに変更した為、 絶対パスとなります。しかしSSL(htts)ではありませんので第3引数は"escape"のままです。 この状態でgetRootPathを呼び出すと、引数には絶対パスが渡されます。 具体例をあげますと、 $path = http://www.hogehoge.jp/shop/cart/index.php $param = 任意 $useSSL = "escape" で getLocation($path, $param = array(), $useSSL = "escape")を呼び出すと・・・ 戻り値はcart/indexが省略され http://www.hogehoge.jp/shop/?・・・・ といったパスが返されてしまいます。 |
| nanasess |
投稿日時: 2010/9/7 17:35
対応状況: −−−
|
神 ![]() ![]() 登録日: 2006/9/9 居住地: 投稿: 2340 |
Re: SSL遷移について 引用:
getLocation() 関数は, パスから URL を生成する関数です. URL は渡せません. こんな感じで, パスのみ渡してやる必要があります. SSL_URL が欲ければ, 第三引数を true にします. |
| patapata |
投稿日時: 2010/9/7 19:00
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について あ〜、やっと意味がわかりました。
URLパスとディレクトリのパスを、そもそも使い分けてるんですね。初歩的なことで完璧にひっかかってました。 ・・・とすると、パラメータ設定でURLパスを設定する場合は、上記のような改造が必要ってことで、一応作ってみました。 getLocation関数は呼び出し元が山ほどある為、$pathにURLが渡されてもいいように修正する場合。 --------------------------------------------------- function getLocation($path, $param = array(), $useSSL = "escape") { if (preg_match("/(" . preg_quote(SITE_URL, '/') . "|" . preg_quote(SSL_URL, '/') . ")/", $path)) { //SITE_URLかSSL_URLで、始まっている場合 $parse = parse_url($path); $path = $parse['path']; } //既存処理 〜略〜 } --------------------------------------------------- ※検査しておりませんので、使用する場合は注意してください |
| patapata |
投稿日時: 2010/9/9 21:43
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: SSL遷移について テンプレート側の修正が一箇所抜けておりましたので、
一応ご報告いたします。 場所:shopping/index.tpl (未ログインの場合表示されるページ) 会員登録ボタン <a href="<!--{$smarty.const.URL_DIR}-->entry/kiyaku.php" → <a href="<!--{$smarty.const.SITE_URL}-->entry/kiyaku.php" |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
どうか教えて下さい!






