header(”Expires: Sat, 01 Jan 2000 00:00:00 GMT”);
header(”Last-Modified: ”. gmdate(”D, d M Y H:i:s”). ” GMT”);
header(”Cache-Control: no-cache, must-revalidate”);
header(”Pragma: no-cache”);
と記述することで、そのページはキャッシュを行いませんが、ブラウザの戻るボタンでそのページに戻った場合も新規読み込みされてしまうのでしょうか。
というのも、フォームで入力するページから入力内容確認ページへ進み、ブラウザで戻った場合、MacIE5・Safariではフォームに入力した内容が表示され、WinIE6では消えてしまうので、混乱してしまっています。
http://www.amazon.co.jp/exec/obidos/ASIN/4844320254/hatena-22
Amazon.co.jp: まるごとPHP!〈Vol.1〉: 本: 山田 祥寛,桝形 誠二,広川 類,山本 勇,岩切 洋一
実装の方針が間違っています。
HTTP ヘッダによるキャッシュコントロールではなく、プログラム側で処理を行うべきです。
書店に並んでいる まるごと PHP (
http://www.amazon.co.jp/exec/obidos/ASIN/4844320254/phplab-22
Amazon.co.jp: まるごとPHP!〈Vol.1〉: 本: 山田 祥寛,桝形 誠二,広川 類,山本 勇,岩切 洋一
) を買ってきて PEAR::HTML_QuickForm の記事を参照してください。
補足すると HTTP ヘッダによるキャッシュコントロールは結局ブラウザ側の仕様次第となり、RFC に従っても完全に値が書き戻る事を期待する事は出来ません。
値の保持はプログラムによって処理され、保証されるべきです。
という事で書店に GO。
回答ありがとうございます。
つまり、ブラウザで戻った時も、ブラウザによってheader関数が効くものと効かないものがある、ということで良いのでしょうか。
セッションを使うとますますブラウザごとの動作が異なるので悩んでいました。
紹介いただいた本は、最近出版されたものなのですね。PHP5に対応というのも良いです。
本屋でチェックしてみたいと思います。
ありがとうございました。