PHPのプログラムで、ブラウザの戻るボタンで戻ろうとすると、
Firefoxなら、
「このページを表示するにはフォームデータを再度送信する必要があります。フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます。」
というメッセージが表示され、IEなら、
「Web ページの有効期限が切れています」
というメッセージが表示されるのを何とかしてくれと言われた。
PHPでsessionを使うと、過去日付の"Expires"と"Pragma: no-cache"が設定され、クライアントキャッシュが無効になるのが原因らしい。
下記のプログに書いてありました。
http://fdays.blogspot.com/2007/11/ie6cache-controlcache.html
ということで、こんなコードを書けば良いらしい。
// 戻るボタンで戻れるようにするための対応。
$date_today = mktime (0, 0, 0, date("m"), date("d"), date("y"));
$date_tomorrow = $date_today + 86400;
date(DATE_RFC1123, $date_tomorrow);header(‘Cache-Control: max-age=’ . ($date_tomorrow – time()));
if (session_id()) {
header(‘Expires: ‘ . date(DATE_RFC1123, $date_tomorrow));
header(‘Pragma: cache’); // Pragmaにはno-cache以外の設定値はないが、Firefox対応のため適当な文字列を設定する。
}