Я пытаюсь правильно выйти из администраторского пользователя. Вот моя функция:
function logout()
{
$_SESSION = array(); //destroy all of the session variables
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
}
В основном, как только я аутентифицирую пароль, я установил сессию, как являющуюся допустимым (только 1 пользовательское общее количество). Теперь, когда администратор поражает выход из системы, я хочу уничтожить текущую сессию и также уничтожить cookie, так, чтобы они не могли только вернуться к администраторской странице с помощью сохраненных сеансовых куки в браузере. но мой код не работает. я поразил выход из системы, и я могу просто непосредственно перейти назад к администраторской странице. однако, если я удаляю свои cookie, функциональность прекрасна. так что случилось с cookie удаление функционируют здесь?
Возможно, ваша проблема не в куках, а в том, что браузер показывает кэшированную версию вашей страницы администратора. Может ли такое быть? Если она исчезает, когда вы нажимаете F5, то, вероятно, дело в этом. Это можно решить, установив правильные заголовки cache-control
.
Посмотрите этот вопрос на SO по поводу того, как настроить кэширование. Вопрос касается как раз обратного (принуждение браузеров к кэшированию), но вы поймете, что нужно изменить, чтобы отключить кэширование.
Если вы действительно хотите охватить все базы, попробуйте сделать:
setcookie (session_id(), "", time() - 3600);
session_destroy();
session_write_close();
Это должно предотвратить дальнейший доступ к сеансу данные для остальной части выполнения PHP. Браузер может по-прежнему отображать установленный файл cookie, однако суперпользователь $ _SESSION будет пустым