アプリ版:「スタンプのみでお礼する」機能のリリースについて

警告 ページの有効期間切れと表示される場合は
session_cache_limiter('private');
という1文を追加すればいいとあったので、ソースの1番上に追加しました。
それで、あるページでセッション変数を定義して、別のページではそのセッション変数があるかないかで何か処理を動かすということをやりたいのですが、セッション変数が無い状態でキャッシュされている(キャッシュの使い方が違っていたらすみません)ようで、その処理を動かすためには1回更新をかけないといけません。この場合はどのようにしたらいいのでしょうか?

A 回答 (2件)

あ、'private'と'nocache' を勘違いして述べてしまいました。

済みません。

>キャッシュというのは、再読み込みしやすい場所へ一時的に保存する
逆です、再読込しなくてよいように、回線のトラフィックを減らす為にブラウザのパソコン内にページデータを保存すると言うことです。よって、キャッシュがあれば、再実行はされません、ユーザーが自分で再実行してくれと更新をかけないとなりません。
常に更新させたいなら、'nocache' とすべきでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>常に更新させたいなら、'nocache' とすべきでしょう。
あるページの有効期間切れ対策のサイトで「当関数を呼ばない場合、自動的にsession.cache_limiterに指定された値が適用されるらしい。そのデフォルト値は'nocache'であるらしい。」とありました。
これでは、session_cache_limiterを使っていない状態と同じですよね?警告 ページの有効期間切れと表示されてしまうのでは?、と思います。

ある別のサイトでは再リロードするには"private, must-revalidate"を使うとありますが、また別のサイトではこのリミッタは無効であるとしています。実際に、効果はありませんでした。
ページの有効期間切れ対策の根本的な解決策は見つかっていないということなんでしょうか?

お礼日時:2008/08/25 00:00

キャッシュの意味を勘違いしておられるようです。


session_cache_limiter('private');
これは、ブラウザに「このページを保存しないでね。」というheaderを送信するためのものです。
よって、別ページへ行けば、そのページにまだ訪れていなければ、普通に表示されます。
更新ボタンを押せば、キャッシュはないので、「警告 ページの有効期間切れ」が表示されます。

session で何がしたいのか、が、つかみ切れていないのですけど、
ページをまたがって、sessionの期限切れ表示を行いたいなら、プログラム側で、session データとして最終アクセス時刻などを保存して、プログラム側でページの有効期限切れを表示させることになるのでは?

この回答への補足

PHPマニュアルにはキャッシュリミッタがprivateというのは「プロキシがキャッシュすることは許可しませんが クライアントがキャッシュすることは許可される」とありました。クライアントがキャッシュすることを許可するというのは、ブラウザにページの保存を許可するということではないのでしょうか?


キャッシュというのは、再読み込みしやすい場所へ一時的に保存するということではないんでしょうか?いまいちキャッシュの意味がつかみきれていません。

補足日時:2008/08/21 22:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!