Как мне сбросить $ _SESSION с подстановочными знаками - PullRequest
2 голосов
/ 17 декабря 2010

Пример У меня есть 100 полей формы. Каждое поле будет иметь сессию ошибок. Когда форма успешно отправлена, я хочу сбросить любой сеанс, слово которого начинается с $_SESSION['submit_']

Сначала я могу сделать как

unset($_SESSION['submit_first_name'],
$_SESSION['submit_last_name'],
$_SESSION['submit_status'],
$_SESSION['submit_mobile'],
$_SESSION['submit_category']);

Но слишком долго.

Если мне нравится

session_destroy();

Тогда убьёт мой лог в сеансе

Возможно сбросить слово сеанса, начинающееся с [submit_']?

Дайте мне знать:)

Ответы [ 2 ]

9 голосов
/ 17 декабря 2010

Вы можете сделать что-то вроде этого:

foreach($_SESSION as $key=>$value)
  if (strpos($key, 'submit_') === 0)
    unset($_SESSION[$key]);

Или вы можете изменить свою переменную $ _SESSION следующим образом:

$_SESSION['submit']['first_name'];
$_SESSION['submit']['last_name'];
$_SESSION['log']['some_log'];
.
.
.
unset($_SESSION['submit']);
0 голосов
/ 17 декабря 2010

Не уверен, что вы можете использовать подстановочные знаки, но вы можете перечислить их в одной команде, если это поможет вам ... Вот так:

unset($_SESSION['submit_last_name'], $_SESSION['submit_status'], $_SESSION['submit_mobile'], etc...);

Но я не уверен, что это вас куда-нибудь приведет ... По крайней мере, это не в нескольких строках. Я буду исследовать с использованием подстановочных знаков, но вы можете использовать Google так же хорошо, как и я:)

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