Почему ($ _SESSION = [];) делает сервер неспособным обработать запрос? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь очистить переменные из сеанса и начать новый.Прочитав вокруг вопрос о переменной, я обнаружил, что это правильный ответ:

( $_SESSION = [];)

Но когда я добавляю эту строку в мой код, на отдельной строке внутри кода PHP, я получаюсообщение о том, что «[сервер] в настоящее время не может обработать этот запрос», указывающее «HTTP ERROR 500».

Без этой одной команды страница работает нормально (за исключением того, что переменные ведут себя не так, как я хочу).Но каждый раз, когда я активирую эту строку, я получаю ошибку.Как я могу очистить переменные, не раздражая сервер?

Обновление: я также пробовал session_destroy (), но он имеет тот же эффект.Вот немного больше контекста:

<?php 
session_destroy();

session_set_cookie_params(3600,"/");
session_start();
?>

Если я закомментирую строку session_destroy (), страница загрузится без проблем.Но с этой строкой я получаю ошибку.

Окончательное обновление для других с этим вопросом: я отметил правильный ответ.Мне нужно было начать новый сеанс, прежде чем сбросить переменные из последнего.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

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

session_unset(); 

, если у вас возникли проблемы после уничтожения сеанса, вероятно, ваш код пытается получить доступ к переменным сеанса, которые не были установлены.Мне нравится проверять с isset() например

$myVar = "";
if (isset($_SESSION('MyVar')) $MyVar = $_SESSION('MyVar');
0 голосов
/ 12 февраля 2019

Вы не должны использовать session_destroy () перед session_start ().Попробуйте это:

session_start(); session_set_cookie_params(3600,"/"); session_destroy();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...