2016-12-14 3 views
0

На моем сайте, страница login.php (при успешном входе в систему) будет перенаправлена ​​на index.php и запустит сеанс и 2 переменные SESSION.Использование нескольких переменных SESSION на одной странице не работает

Одна из переменных начавших это сообщение успех:

$_SESSION["message"] = "Login successful!"; 

второй переменной сеанса пользователя:

$_SESSION["authenticatedUserEmail"] = $email; 

проблема заключается в том, что, если я проверю переменные по отдельности, а затем попытаться используйте их на странице index.php, только первая проверенная будет работать.

Это следующий фрагмент покажет $form_message, но он не будет показывать $_SESSION["authenticatedUserEmail"]:

session_start(); 
if(isset($_SESSION["message"])) { 
    $form_message = $_SESSION["message"]; 
    session_unset($_SESSION["message"]); 
    echo $form_message; 
} else { 
    $form_message = ""; 
} 


if (isset($_SESSION["authenticatedUserEmail"])) { 

    echo $_SESSION["authenticatedUserEmail"]; 

} 

Это делает работу, когда я использую только один if(isset($_SESSION заявление, но я не хочу, чтобы всегда включать как внутри одного оператора ,

Я сделал проверку ошибок:

ini_set('display_errors',1); 
error_reporting(E_ALL); 

, но не появляются ошибки.

Может кто-нибудь предложить, почему это может не работать, или если я чего-то не хватает?

Заранее спасибо.

ответ

4

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

http://php.net/manual/en/function.session-unset.php

добиться того, что вы хотите, вы можете использовать функцию UNSET

unset($_SESSION["message"]); 

надеюсь, что это помогает

+0

спасибо !! Это сработало сразу. +1 – drew

2

Ваш вызов session_unset является проблемой, вы должны просто использовать unset.

session_unset unsets целое $_SESSION массив.

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