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? или что