PHP Unset Session Variable
Я программист noob, поэтому заранее извиняюсь за любые очевидные ошибки. На прошлой неделе я потратил на создание базы данных продуктов. У меня тоже есть момент, когда я могу добавлять продукты с помощью формы, просматривать все добавленные продукты и т.д. Я использую сеансы, созданные через входные данные формы. Я изо всех сил пытаюсь включить работу с удаленной страницей продукта, я попытался использовать unset, чтобы очистить переменную, но не могу заставить ее работать.
ADD Страница продукта, которая устанавливает переменную сеанса:
$_SESSION['Products'][] = $_POST; //is how i set the session on the add products page.
unset $_SESSION['Products'][]; //is how i have tried to clear the session although it does not work.
Любая точка в правильном направлении будет оценена!
Ответы
Ответ 1
Вы можете отключить переменную сеанса, используя:
-
session_unset
- освобождает все переменные сеанса (он равен использованию: $_SESSION = array();
)
-
unset($_SESSION['Products']);
- Отменить только индекс продуктов в переменной сеанса. (Помните: вы должны использовать как функцию, а не так, как вы использовали)
-
session_destroy
- Уничтожает все данные, зарегистрированные в сеансе
Чтобы узнать разницу между использованием session_unset
и session_destroy
, прочтите этот SO ответ. Это помогает.
Ответ 2
Unset - это функция. Поэтому вы должны указать, какая переменная должна быть уничтожена.
unset($var);
В вашем случае
unset ($_SESSION["products"]);
Если вам нужна переменная reset all session, просто вызовите
session_destroy ();
Ответ 3
Если вы полностью хотите очистить сеанс, вы можете использовать это:
session_unset();
session_destroy();
На самом деле оба они не обязательно, но это не повредит.
Если вы хотите удалить только определенную часть, я думаю, вам нужно это:
unset($_SESSION['Products']);
//or
$_SESSION['Products'] = "";
в зависимости от того, что вам нужно.
Ответ 4
unset
- это функция, а не оператор. Используйте его как unset($_SESSION['key']);
, чтобы отключить этот ключ сеанса. Однако вы можете использовать session_destroy();
. (Обязательно запустите сеанс с помощью session_start();
)
Ответ 5
Я включаю этот ответ, если кто-то приходит на эту страницу по той же причине, что и я. Я просто потратил впустую неловкое время, пытаясь отследить проблему. Я звонил:
unset($_SESSION['myVar']);
из сценария выхода. Затем переходите на страницу, требующую входа в систему, и сервер все еще думал, что я вошел в систему. Проблема заключалась в том, что сценарий выхода не вызывал:
session_start();
Сброс сеанса var НЕ РАБОТАЕТ, если вы сначала не начинаете сеанс.
Ответ 6
Если я отменил сеанс, что станет ценностью этого сеанса, будет ли оно "" или NULL? или что