PHP önbelleğe olmamak sayfa zorlamak nasıl?

4 Cevap

Ben bir sayfa var, index.php, bir mysql db dayalı bilgi gösterir. Orada üzerinde formları ve formlar için eylem process.php denilen ayrı bir sayfaya ayarlanır. Process.php kullanır, sonra tüm veritabanı CRUD şeyler yapar

header("Location: /webadmin/email/index.php");

orijinal sayfaya geri kullanıcıya göndermek için.

Bu orijinal indeks sayfası her zaman process.php tarafından yapılan değişiklikleri yansıtacak olmadığı gerçeği dışında, iyi çalışıyor gibi görünüyor. Ben bir yenileme (Ctrl + F5) yaparsanız, sayfa son verileri gösterecektir çünkü, sayfa önbelleğe ediliyor varsayalım.

Nasıl bu sayfayı önbelleğe alınmasını engelleyebilir? I what the PHP page for header() says denedim, ama çalışmak için görünmüyor. Sayfa hala önbelleğe ediliyor - Cache-Control ve seçenekleri Bitiş hiçbir etkiye sahip görünmektedir.

Update

Tamam, ben kısmen yanlış oldu. Görünüşe göre, aşağıdaki IE çalışır:

<?php header("Cache-Control: no-cache, must-revalidate");

Ancak, kesinlikle hala önbelleğe alınmış bir sürümü gösteriyor FF, çalışan DEĞİLDİR. Herhangi bir nedenle bu nedir ve nasıl bunu önbelleğini durdurmak yapabilirsiniz üzerinde fikir?

4 Cevap

all tarayıcılar dizilmeye olun:

header("Location: /webadmin/email/index.php?r=".mt_rand(0, 9999999));

Bu hoş değil, ama bu soruyu sordu uyuyor: "Nasıl force ..."

Ben güvenli bir şekilde oynamak ve çıkış için insanın (ve tarayıcı) için bilinen tüm önbellek katilleri denemek istiyorum. Benim liste şu anda oluşmaktadır:

<?php
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

Bu tüm tarayıcılarda çalışan almak için doğru sırası:

<?php
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Pragma: no-cache"); // HTTP/1.0
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
?>

Bir sahte sorgu dizesi ile tarayıcı kandırmak deneyin:

header("Location: /webadmin/email/index.php?x=1");