Я сталкиваюсь с (по-видимому, распространенной) проблемой с кэшем браузера, и мои защищенные страницы доступны через кнопку возврата (после выхода пользователя из системы).
Вот мой logout.php
<?php
// 1. Find the session
session_start();
// 2. Unset all the session variables
$_SESSION = array();
// 3. Destroy the session cookie
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// 4. Destroy the session
session_destroy();
redirect_to('index.php?logout=1');
?>
При этом пользователи успешно выходят из IE7, IE8, Chrome и Firefox, но в Safari я могу нажать кнопку «Назад» (сразу после выхода из системы) и по-прежнему видеть защищенный контент.Если я обновляю защищенную страницу, она загружает меня на экран входа в систему (как и должно быть).
Я пытался использовать:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
... но это не имеет никакого эффекта.Кто-нибудь может дать совет?Я нашел эту статью о кешировании в браузере, но я до сих пор не нашел в ней ответа ... хотя я нашел:
<?php
Header("Cache-Control: must-revalidate");
$offset = 60 * 60 * 24 * 3;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
Header($ExpStr);
?>
... что тоже не даетрешать проблему."Хм.