« 2006年08月 | メイン | 2006年10月 »

2006年09月21日

ページの有効期限

山行記録の入力ページが3ページにわたっていて、途中でブラウザの
「戻る」ボタンや「進む」ボタンをおしたら、「ページの有効期限切れ」
が表示されてしまう。

□page1
 ↓POST入力
□page2
 ↓POST入力
□確認ページ

どうやらブラウザのボタンで移動すると、POSTで送るメッセージを再現できずに有効期限切れとなる様子。
とりあえず以下で対応できた。

□page1
 ↓POST入力
□page1' ⇒ セッションに保存
 ↓リダイレクト(ページ番号をGETで渡す)
□page2
 ↓POST入力
□page2' ⇒ セッションに保存
 ↓リダイレクト(ページ番号をGETで渡す)
□確認ページ

ブラウザのキャッシュをうまく使うためにphp.iniのsession.cashe_limiter設定や、session_cache_limiter関数による設定でも制御できるらしい。
後者はsession_start()の前に書いておく必要あり。
xoopsでsession_start()を読んでいるのはcommon.phpの192行目あたりだけど、モジュール的には
mainfile.phpをincludeする前に書いておけばいいのかな。

- Reference:
PHPマニュアル(session_cache_limiter)
http://jp.php.net/manual/ja/function.session-cache-limiter.php
memo.xight.org - Internet Explorer の「ページの有効期限切れ」対策
http://memo.xight.org/2006-06-13-2


投稿者 matoyan : 00:22 | コメント (0)