(PHP), Как уничтожить сеансовые куки правильно?

Я пытаюсь правильно выйти из администраторского пользователя. Вот моя функция:

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 удаление функционируют здесь?

17
задан Tony Stark 11 February 2010 в 02:08
поделиться

2 ответа

Возможно, ваша проблема не в куках, а в том, что браузер показывает кэшированную версию вашей страницы администратора. Может ли такое быть? Если она исчезает, когда вы нажимаете F5, то, вероятно, дело в этом. Это можно решить, установив правильные заголовки cache-control.

Посмотрите этот вопрос на SO по поводу того, как настроить кэширование. Вопрос касается как раз обратного (принуждение браузеров к кэшированию), но вы поймете, что нужно изменить, чтобы отключить кэширование.

7
ответ дан 30 November 2019 в 13:45
поделиться

Если вы действительно хотите охватить все базы, попробуйте сделать:

setcookie (session_id(), "", time() - 3600);
session_destroy();
session_write_close();

Это должно предотвратить дальнейший доступ к сеансу данные для остальной части выполнения PHP. Браузер может по-прежнему отображать установленный файл cookie, однако суперпользователь $ _SESSION будет пустым

9
ответ дан 30 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: