[PHP-users 12664] session関数を使った際のブラウザ「戻る」ボタン

k_matsui php-users@php.gr.jp
Mon, 20 Jan 2003 16:24:22 +0900


初めまして。松井と申します。

この度session関数を使用してショッピングバスケットの作成をしています。

form.html
商品の一覧。ここからformタグを使用してcargo.phpへデータを渡す。

cargo.php
form.htmlから渡されたデータを一覧表示し、合計金額なども表示。
(取消ボタンで一度選択した商品を削除出来る)
プラス顧客情報の入力画面。

mail.php
cargo.phpから渡された商品情報と顧客情報を一覧表示し、問題無い事を
確認してもらった後、送信ボタンをクリックする事により管理者へ内容が
メールで届く。

ざっとこんな感じです。
概ね完成したのですが、一つ気になる事があり、質問致します。
form.htmlにて選択された商品データはcargo.phpにて
session_register()を使って配列で保存し、顧客が複数商品を選択出来るように
なっています。さらに、mail.phpでも呼び出して利用しています。
顧客は商品を複数選択する際や、入力ミスなどした場合に一つ前の画面に
戻って訂正したりするわけなのですが、
cargo.phpからform.htmlへブラウザの「戻る」で
戻る際は問題無いのですが、mail.phpからcargo.phpへブラウザの「戻る」で戻ると
「警告 : ページの有効期限切れ」と出てしまします。これはsession関数を
使用した場合、仕方の無い事なのでしょうか?
(更新をクリックすれば表示されますし、mail.phpにcargo.phpへのリンク
を張ってそこから戻れば問題無いようです)

cargo.phpには以下のように記述し、
session_start();
session_register(array_item);

mail.phpにはsession_start();とだけ記述しております。

cargo.phpからmail.phpにはsession関数を利用せずにtype=hiddenで送れば問題が
解決しそうなのですが、もし他に方法が有りましたらご伝授下さい。

phpのバージョンは4.2.3です。

文章がとりとめなく、自分でもうまく説明しきれてないと思います。申し訳ありませ
ん。