2015-11-18 2 views
0

У меня есть небольшой веб-сайт, использующий сеанс для проверки входа пользователя.php session и session unset + destroy сохраняет сеанс неповрежденным

Когда пользователь выйдет из системы, они перенаправляются на страницу, содержащую только сеанс уничтожения.

Код нижеследовал:

<?php 
session_start(); 
if(session_destroy()) { 
    $_SESSION = array(); 
    header("Location: http://domain.com/"); 
} 
exit(); 
?> 

Я пытался удалить, если заявление для проверки каких-либо проблем при уничтожении сеанса.

Я даже использовал unset и установил массив на пустой.

При перенаправлении на домашнюю страницу домена пользователь все еще зарегистрирован и сеанс по-прежнему установлен.

Также я попытался отключить конкретную сессию, и до сих пор ничего не происходит.

- Обновление: Сессия даже не возвращается как пустое значение. Повторение сеанса после выхода из системы по-прежнему возвращает значение имени пользователя.

+0

Почему session_destroy дважды? session_destroy вернет true, если он успешно уничтожит сеанс. – Tim

+0

Просто ошибка после тестирования нескольких решений для снятия/уничтожения файла cookie. – LetMeAnswerThis

+0

И значение возвращается true. Я всегда получаю перенаправление заголовка. – LetMeAnswerThis

ответ

0

Этот ответ должен помочь. Как отметил Роланд Старк в комментарии, session_destroy не удалит файл cookie.

https://stackoverflow.com/a/3512570/3563178

+0

Это была просто ошибка орфографии. Не работает с файлами cookie на веб-сайте. Я просто говорю о сеансе. Также используя код, предоставленный на форуме, или из исходного сообщения на .php, я просто получаю 500 внутренних ошибок. Я считаю, что это потому, что у меня нет доступа к файлу .ini. – LetMeAnswerThis

0

попробовать это.

<?php 
session_start(); 
if(session_destroy()) { 
echo '<meta http-equiv="refresh" content="0;URL=http://domain.com">'; 
} 
exit(); 
?> 

Я думаю, что заголовок порождает ошибку в данном конкретном случае. hmmmm ..... (Header уже отправлен) ...