- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでセッション情報の受け渡し2)
PHPでセッション情報の受け渡し2
このQ&Aのポイント
- PHPを使用してセッション情報を受け渡す方法についてアドバイスをいただきました。
- 保持したい情報のある全てのページを1ページで収め、JavaScriptでページを切り替える方法を実装しました。
- しかし、最終の確認画面から前の画面に戻ると、選択していた画像が表示されなくなる不具合が発生しました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> キャッシュを残すコードを入れるのか、戻るボタンのコードで対応できるのかだけでも、ヒントが欲しいです。 戻るボタンの動作を作り込むしか無いでしょう。 ブラウザが保持するキャッシュはHTTPで取得してきた時の素のモノなので、ユーザーが入力した内容やJavaScriptで動的に変更した状態は含まれません。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
回答No.1
そもそも history.back() はブラウザの戻るボタンを押しているのと同じ行為です。 ブラウザがどの程度データをキャッシュしてくれるかは何ら保証が無いので使わない方がいいです。 最終の確認画面にsubmitで送信したのであれば、戻るボタンは入力画面への遷移するようURLを指定し、入力画面を表示するプログラムでセッション等で保持しているデータを初期値として表示させるようにした方がいいと思います。
質問者
補足
history.back() はそうでしたか。 ありがとうございます。 「戻るボタンは入力画面への遷移するようURLを指定し、入力画面を表示するプログラムでセッション等で保持しているデータを初期値として表示させるようにした方がいいと」 そこなんですよねーそれがわかると大きく前進出来そうです。 試しに <meta content="86400" http-equiv="Expires" >を入れたり、 戻る方法を location.assignやlocation.hrefでやってみましたが、全然ダメでした。 キャッシュを残すコードを入れるのか、戻るボタンのコードで対応できるのかだけでも、ヒントが欲しいです。 よろしくお願いします。
補足
度々ありがとうございます。 「ブラウザが保持するキャッシュはHTTPで取得してきた時の素のモノなので、ユーザーが入力した内容やJavaScriptで動的に変更した状態は含まれません。」 上記については、よく分かりました。 下記サイトでも確認出来ました。 http://blog.ks-product.com/safari-firefox-browser-back-rollover/ 色々調べて見たのですが、 「戻るボタンの動作を作り込むしか無いでしょう。」というのが、 何で指示をしてあげれば良いのかが、今ひとつたどりつけません。 送信→確認画面→前画面へ戻る(現状ではjavascript:history.back();) の流れで、入力したテキストの情報は残っていますが、 iframeで表示していた画像が「about:blank」になってしまいます。 またsession_start();の下に下記を入れてみましたが、表示はかわりません。 header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $interval ) . " GMT" ); header( "Cache-Control: max-age=" . $interval); header( "Pragma: cache"); // no-cache以外にすればOK 戻るボタンの動作はjavascriptでの指示でしょうか? 大変恐縮ですが、もう少し具体的なアドバイスをいただけると幸いです。 PHPを始めたばかりで、まだまだ勉強不足ですみません。 よろしくお願いします。