Я хочу отключить сессионный массив, но этого не происходит. Где я ошибаюсь в этом?
if(isset($_SESSION['id']) && isset($_POST['processorder']))
{
$chk = $_SESSION['id'];
$query="update order_details set process_order='1' where id IN(".implode(',',$chk).")";
mysql_query($query) or die(mysql_error());
unset($chk);
}
$chk = $_SESSION['id'];
Здесь вы создаете переменную $chk
со значением $_SESSION['id']
затем отменяете этот $chk
но вы никогда не касались $ _SESSION var.
Для этого вам необходимо иметь следующий код:
$_SESSION['id'] = '';
unset($_SESSION['id']);
используйте php unset
следующим образом: -
unset($_SESSION['id']);
unset($_SESSION['processorder']);
или вы можете использовать session_destroy()
удалит ВСЕ данные, связанные с этим пользователем.
Не этот unset($chk);
$chk
- это просто ссылочная вариация. Вам нужно unset
исходную переменную.
unset($_SESSION['id']);
Используйте NULL
и unset
для удаления сохраненных значений в переменных $_SESSION[]
, например:
$_SESSION['id'] = NULL;
unset($_SESSION['id']);
Если вы положите
$_SESSION['id'] = '';
и в случае, если есть пространство между ''
двумя кавычками, то
if(isset($_SESSION['id'])){}
возвращает true вместо false.
ПРИМЕЧАНИЕ. Вы также можете использовать функцию session_destroy()
, но он уничтожает все сохраненные данные сеанса.
Отмена $chk
фактически не влияет на исходный массив. Вы можете использовать ссылки для этого. Но имейте в виду, что отмена самой ссылки не влияет на исходный массив. Это должно работать:
$session = &$_SESSION;
unset($session[id']);
Это может быть полезно, если вам нужно выполнить несколько действий над $ _SESSION - должно сделать ваш код немного более удобочитаемым
$_SESSION
а не$chk