@ihateyourcode

Как уничтожить сессию на сайте?

Возникла проблема. Существует сайт состоящий из трёх страниц: index.php, welcome.php и user.php.
В index вводятся данные в форму, вызывается welcome.php, где вызываются данные из бд и в случае совпадения записываются в $_SESSION[‘login’] и редирект на user.php.
В user.php есть приветствие, в котором задействуется вышеупомянутая сессионная переменная, то есть мы сразу видим под каким пользователем вошли.
Так же на этой странице есть кнопка, вызывающая функцию выхода из аккаунта, а точнее: session_destroy() и последующий редирект на index. Возникает следующая проблема: даже после выхода и следовательно уничтожения сессии, если я напрямую в адресной строке обращусь к user.php, на странице пользователя меня поприветствуют под последним именем. То есть по факту сессионная переменная $_SESSION[‘login’] удалена не была. Каким образом это возможно и как это исправить?
  • Вопрос задан
  • 362 просмотра
Пригласить эксперта
Ответы на вопрос 2
toxa82
@toxa82
Из офф мануала:
session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать session_start().

Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.
Ответ написан
gluck59
@gluck59
Виртуальный глюк
Сессия была удалена, но имя юзера осталось в куках браузера. Поиграйтесь с setcookie();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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