[PHP-users 34340] Re: セッションを使ったページへのアクセスについて

ピーシークリエイト tamura @ jazz.email.ne.jp
2009年 3月 8日 (日) 21:40:18 JST


田村といいます。
前回sessionを使用したページに「戻りボタン」で戻った際のキャッシュ保存についての
ご指導をお願いし、その部分は問題を解消できました。まことに有難うございました。 


その後、ページ3(check.php)を追加しましたが、新たな問題が起きてしまい、その原因が
本件の議題と関係すると考え、続けて投稿させていただきました。
問題の発生する手順を次に示します。

1:ページ1で購入したい商品を選んでformから商品番号をPOSTにてページ2に渡します。 

2:ページ2ではページ1より渡された商品番号、員数をセッションデーターとして書き込むと同時に
 データーベースから得た商品名、単価と共に表示します。
 ページ1とページ2は複数の商品を購入する場合複数回行き来します。
 ページ1とページ2との行き来にはブラウザーの「戻りボタン」を使う場合もページ内のリンクボタンを使う場合も
 表示内容は問題なく、セッション内容が正しく表示されています。
 
3:ページ2で購入商品の選択が終了したときにページ3に飛び、選択した商品のリスト、員数などの
 セッションデーターを読み込み表示します。

問題はページ3からページ2に戻る際、ブラウザーの「戻り」ボタンでページ2に戻ったときはページ2の内容は
正しく表示されますが、ページ内のリンクボタンでページ2に戻るとセッション情報が正しく表示されません。
又、ページ2からページ3に移る前にブラウザーの「再表示」ボタンにて表示を更新させた後にページ3に飛べば、
ページ3からリンクボタンでページ2に戻ったときも正しいセッション内容が表示されます。
この問題は

session_cache_limiter('private');

を記述した後に新たな問題として分かったもので、キャッシュを残さない場合は起きません。

以上のような現象の改善について何方かヒントをいただければ幸いです。

----------------各ページの内容-----------------------------

ページ1:mart.html (買い物籠付き商品リストページ)

            <FORM action=./mart.php method=post>
                                |
                                |
            <INPUT type=submit value=カゴに入れる>
            </FORM>

ページ2:mart.php (ページ1より買い物をされた商品に対してセッションデーターの読み書き)

            <?php
                session_cache_limiter('private');
                session_start();
            ?>
                                |
                セッションデーターの読み書き

ページ3:check.php(ページ2の注文前確認)

            <?php
                session_cache_limiter('private');
                session_start();
            ?>
                                |
                セッションデーターの読み込み表示




PHP-users メーリングリストの案内