Сессионный массив не сброшен

1

Я хочу отключить сессионный массив, но этого не происходит. Где я ошибаюсь в этом?

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);

}
  • 6
    Вам нужно сбросить $_SESSION а не $chk
  • 0
    @ спасибо тебе, Фелипе ... Я просто застрял вокруг, потому что это срочно .. Кстати, спасибо ..
Показать ещё 2 комментария
Теги:
session

5 ответов

3
$chk = $_SESSION['id'];

Здесь вы создаете переменную $chk со значением $_SESSION['id'] затем отменяете этот $chk но вы никогда не касались $ _SESSION var.

Для этого вам необходимо иметь следующий код:

$_SESSION['id'] = '';
unset($_SESSION['id']);
2

используйте php unset следующим образом: -

unset($_SESSION['id']);
unset($_SESSION['processorder']);

или вы можете использовать session_destroy()

удалит ВСЕ данные, связанные с этим пользователем.

Не этот unset($chk);

0

$chk - это просто ссылочная вариация. Вам нужно unset исходную переменную.

unset($_SESSION['id']);
0

Используйте NULL и unset для удаления сохраненных значений в переменных $_SESSION[], например:

$_SESSION['id'] = NULL;
unset($_SESSION['id']);

Если вы положите

$_SESSION['id'] = ''; 

и в случае, если есть пространство между '' двумя кавычками, то

if(isset($_SESSION['id'])){} 

возвращает true вместо false.

ПРИМЕЧАНИЕ. Вы также можете использовать функцию session_destroy(), но он уничтожает все сохраненные данные сеанса.

0

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

$session = &$_SESSION;
unset($session[id']);

Это может быть полезно, если вам нужно выполнить несколько действий над $ _SESSION - должно сделать ваш код немного более удобочитаемым

Ещё вопросы

Сообщество Overcoder
Наверх
Меню