人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで管理画面を制作しているのですが、項目を追加するページと、表示するページを用意しているのですが、追加した後に表示するページに行っても、一度、更新ボタンを押さないと追加された分が反映されて表示されません。

恐らく、キャッシュの問題かと思いますが、キャッシュを削除する方法はありませんでしょうか?

●質問者: makocan
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP キャッシュ ボタン 制作 更新
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Sampo
●27ポイント

http://php.s3.to/man/function.header.html

ここに、キャッシュを行わせないためのHTTPヘッダ出力法が載っています。

ただ、追加受付後にheader("location: 表示ページ");をするだけで、通常は表示ページが再読込されるはずですが。

◎質問者からの返答

ありがとうございます。

見てみたいと思います!


2 ● pxb12663
●27ポイント

header関数の Cache-Control: no-cache と Pragma: no-cache でキャッシュを無効に出来るそうですが、私も開発していて悩まされたことがあります。環境によっては表示出来たり出来なかったりするので、結局は注意書きをしました。

http://www.tohoho-web.com/lng/199812/98120045.htm

◎質問者からの返答

ありがとうございます!

こちらの方法で、問題なく正常に動作いたしました。


3 ● canadie
●27ポイント

キャッシュを使わないようにブラウザやProxyに通知することはできます。私は次のようにしています。


header('Pragma: no-cache');

header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');

header('Cache-Control: no-cache; max-age=0');


大抵はこれでうまく行くと思います。

それでもダメな場合は、ちょっと強引ですがGETパラメタを付けてURLを毎回変えるようにすればキャッシュが表示されることはありません。

<a href="xxxx.php?uid=<?php print md5(uniqid(rand(), true)); ?>">表示するページ</a>

こんな感じです。例では、uid=の後に、毎回違う文字列が埋め込まれるようになります。uniqidやmd5の使い方については、PHPのマニュアルをご覧下さい。

uniqid

http://jp2.php.net/manual/ja/function.uniqid.php

md5

http://jp2.php.net/manual/ja/function.md5.php

◎質問者からの返答

ありがとうございます。

上記同様に、この手法も使わせていただきました。

>表示するペー>ジ

これは上手い方法ですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ