バージョン選択

フォーラム

メニュー

オンライン状況

32 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 32
もっと...

サイト内検索

質問 > その他 > 「かごの中を見る」のリンクにトランザクションコードを付与したい

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kno
投稿日時: 2010/2/10 15:50
対応状況: −−−
半人前
登録日: 2009/10/21
居住地:
投稿: 13
「かごの中を見る」のリンクにトランザクションコードを付与したい
[EC-CUBE] 2.4.2-comu(新規インストール)
[OS] CentOS 5.4
[DBサーバ] PostgreSQL 8.4.2
[WEBサーバ] Apache2.2
[PHP] 5.3.2RC1
[レンタルサーバー] さくらインターネット

こんにちは。いつもお世話になります。
さて、表題の件につきましてご教授いただけないかと思いまして、質問させていただきました。
EC-CUBE2.4.2-comu版を新規インストールさせていただいたのですが、
カートに商品が入った状態で、若干挙動におかしな箇所があります。
以下の操作をすると、その箇所が現れます。
カテゴリページから商品をカートに入れる→削除、または数量の+、−ボタンをクリック→ブラウザの戻るをクリックすると、削除などの操作をした前の画面が表示されます。
例えば削除をクリックしてもブラウザで戻るをクリックすると削除したはずの商品が表示されます。

管理画面のページ詳細設定、商品一覧ページの内容を以下に書き換えればこの問題は回避できたのですが、
<!--▼買い物かご-->
  <form name="product_form<!--{$id|escape}-->" action="?" onsubmit="return false;">
  上記を以下に変更
  <!--▼買い物かご-->
  <form name="product_form<!--{$id|escape}-->" action="/products/detail.php?" method="post">
<input type="hidden" name="mode" value="cart" />

今度は、商品をカートに入れる→「かごの中を見る」のリンクをクリック→削除などの操作→ブラウザで戻る
をクリックすると削除などの操作をした前の画面が表示されてしまいます。

この問題を回避するには、商品が現在のかごの中に入った状態のとき、「かごの中を見る」のリンクにトランザクションコードが付与されれば回避できると思うのですが、やり方が分からず質問させていただきました。

または、もしかして私のphp.iniの設定がおかしいからこの問題が表れるのでしょうか?
;session.use_cookies = 0
;session.use_trans_sid = 1

セッション関係では、と思い色々と設定を変えてみたのですが、効果はありませんでした。
よろしくご教授お願いします。
ramrun
投稿日時: 2010/2/10 16:48
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
下記ファイルに赤字を追加したらどうなります?

data/class/pages/cart/LC_Page_Cart.php
function init() {
    parent::init();
    $this->tpl_mainpage = 'cart/index.tpl';
    $this->tpl_column_num = 1;
    $this->tpl_title = "現在のカゴの中";
    $this->httpCacheControl('nocache');
}

kno
投稿日時: 2010/2/10 20:22
対応状況: −−−
半人前
登録日: 2009/10/21
居住地:
投稿: 13
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
ramrun様

早速のご返答ありがとうございます。

ご指示の通りに

data/class/pages/cart/LC_Page_Cart.phpに $this->httpCacheControl('nocache');
を付け加えてみたのですが、
やはり商品をカートに入れる→「かごの中を見る」のリンクをクリック→削除などの操作→ブラウザで戻る
をクリックすると削除などの操作をした前の画面が表示されます。

「ブラウザの戻るはクリックしないでください」などの注意書きをするのは不恰好ですので、
何とか回避したい症状なのですが..
ramrun
投稿日時: 2010/2/10 21:03
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
多分Safariですよね?
どうも下記によると、SafariのBack/Forwardキャッシュというのは別腹みたいです。

Safari Developer FAQ - 5. 自分のページ(およびcookies)がSafariにキャッシュされるのを防ぐにはどうすればよいのでしょうか?
http://developer.apple.com/jp/internet/safari/faq.html#anchor5

IE8やFirefox3ではnocacheに設定するのみでOKなのですが、Safari3ではさらに下記をやってください。

data/Smarty/templates/default/cart/index.tpl
 *}-->
<iframe style="height:0px;width:0px;visibility:hidden" src="about :blank">this frame prevents back forward cache</iframe>
<!--▼CONTENTS-->

kno
投稿日時: 2010/2/11 10:53
対応状況: −−−
半人前
登録日: 2009/10/21
居住地:
投稿: 13
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
ramrun様

ブラウザの情報を記載するのを失念しておりました。申し訳ありません。

ご指示の施策をさせていただきまして、
(/data/class/pages/cart/LC_Page_Cart.php、/data/Smarty/templates/default/cart/index.tplを改修)

以下のブラウザで商品を「かごに入れる」→「カゴの中を見る」のリンクをクリック→「削除」→ブラウザの「戻る」をクリックを行い、チェックしてみたのですが、

サファリ4:○
IE6:○
IE7:○
IE8:○
ファイアーフォックス3.6:×
グーグルクローム:×

○→ブラウザの戻るで商品が削除された画面が表示
×→ブラウザの戻るで商品が削除されず表示

ファイアーフォックスとグーグルクロームではブラウザの戻るで削除されたはずの商品が表示されます。

ramrun様が教えてくださった施策でIEシリーズやサファリでは正常に表示されるようになりました。ありがとうございます。

ファイアーフォックスとグーグルクロームでも正常に表示される方法を教えていただけないでしょうか?

何卒よろしくお願いします。m(_ _)m

-----------------------------------
[EC-CUBE] 2.4.2-comu(新規インストール)
[OS] CentOS 5.4
[DBサーバ] PostgreSQL 8.4.2
[WEBサーバ] Apache2.2
[PHP] 5.3.2RC1
[レンタルサーバー] さくらインターネット
ramrun
投稿日時: 2010/2/11 14:04
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
私のテストサイト(xrea+)ですけど
-----
試してもらえます?

私が試したところでは
$this->httpCacheControl('nocache');

を追加する前は

サファリ 4.04:×
IE 8.0.6001.18402:×
ファイアーフォックス 3.6:×
グーグルクローム 4.0.249.89:×

追加後は

サファリ 4.04:×
IE 8.0.6001.18402:○
ファイアーフォックス 3.6:○
グーグルクローム 4.0.249.89:○

iframeの記述を追加後は

サファリ 4.04:○
IE 8.0.6001.18402:○
ファイアーフォックス 3.6:○
グーグルクローム 4.0.249.89:○

となってます。


そちら(さくら)とxrea+の、カートページのHTTPヘッダーを見比べれば違いがわかるかもしれません。

LiveHTTPHeaders(Firefoxアドオン)
http://livehttpheaders.mozdev.org/

※テストしたブラウザのバージョンが適当だったので修正(汗)
kno
投稿日時: 2010/2/12 10:36
対応状況: −−−
半人前
登録日: 2009/10/21
居住地:
投稿: 13
Re: 「かごの中を見る」のリンクにトランザクションコードを付与したい
ramrun様

ブラウザのクッキーを全て削除したら、ファイアーフォックス、グーグルクロームともカート画面が正常に動くようになりました。

色々と教えてくださりありがとうございます。

追伸
LiveHTTPHeaders、便利なアドオンですね。今後も使わさせていただきます。

追記
ブラウザのクッキーを削除で正常に表示されるようになった原因は、私の.htaccessファイルの設定のせいでした。
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 day"
</IfModule>

でブラウザキャッシュの設定をするとphpファイルなどの動的ファイルもキャッシュされるのですね。
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 day"
ExpiresByType image/gif "access plus 1 day"
ExpiresByType image/jpg "access plus 1 day"
ExpiresByType image/png "access plus 1 day"
ExpiresByType application/x-javascript "access plus 1 day"
</IfModule>

に設定しなおして、phpを指定しない設定にして正常にカート画面が表示されるようになりました。
お騒がせしました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,323名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.