2012-05-24 2 views
1

У меня есть несколько переменных $ _SESSION, которые отслеживают, с какой страницы пользователь приходит. Таким образом, я могу сделать сообщения об ошибках более конкретными, и, таким образом, веб-приложение станет более удобным для пользователя. Когда пользователь не приходит с какой-либо страницы, предполагается, что это сообщение приветствуется в верхней части главной страницы. Однако, когда я закрываю браузер и получаю доступ к главной странице, я получаю сообщение, соответствующее странице, с которой я связан до закрытия сеанса. Это моя функция:сеанс не заканчивается, когда браузер закрывается

function come_from($from_page, $updates_occurred) { 
    $message = ""; 
    if ($updates_occurred == false) { 
     $message .= "Welcome to the User List.<br/>"; 
     $message .= "Select the user you wish to update, or add a new user. "; 
    } elseif ($from_page == "edit_user.php") { 
     $message .= "The user was successfully updated"; 
    } else { 
     $message .= "The user was successfully added"; 
    } 
return $message; 
} 

В верхней части главной страницы, у меня есть следующий код:

if (isset($_SESSION['updates_occurred'])) { 
    $updates_occurred = $_SESSION['updates_occurred']; 
} else { 
    $updates_occurred = false; 
} 

if (isset($_SESSION['come_from'])) { 
    $come_from = $_SESSION['come_from']; 
} else { 
    $come_from = NULL; 
    echo "got here"; 
} 


echo come_from($come_from, $updates_occurred); 

* updates_occurred просто отслеживает, был ли успешно изменен пользователем/добавленный на предыдущем стр.

Я полагаю, что моя главная проблема: есть ли проблема с тем, как я использую переменные сеанса? Если мое понимание правильное, ожидается, что переменные сеанса истекут, когда браузер закрыт, верно?

+0

упс Я чувствую себя очень грубо: Спасибо всем, заранее! – nv39

+1

Вы закрыли весь браузер (каждая вкладка, каждое окно) или только вкладка? К лучшему или худшему, файлы cookie сеанса продолжают жить в большинстве (всех?) Браузеров, в то время как есть какие-либо вкладки/окна открыты, вам нужно закрыть все, чтобы уничтожить их. – DaveRandom

+0

Отлично, это была проблема. Спасибо :-) – nv39

ответ

2

вкладки закрытия браузера не закрыть сеанс

следует закрыть весь браузер, чтобы закрыть сессию

+2

Я думаю, что это должен быть комментарий. –

+0

любой комментарий или ответ ... вопрос должен быть полезен для него –

+1

* ее ;-). Но спасибо, это было полезно. Вы правы, когда я закрыл браузер, сообщение «Добро пожаловать» было отправлено! – nv39

Смежные вопросы