Удалить МНОГОМЕРНЫЙ массив куки

Extalionez

Клоун
Заблокирован
Регистрация
21 Авг 2008
Сообщения
368
Реакции
191
  • Автор темы
  • Заблокирован
  • #1
Есть примерно следующие куки.
PHP:
$_COOKIE['do']['re']['mi']['fa']['sol']['la']['si']
Спрашивается... как удалить весь массив куки $_COOKIE['do']['re'] ?
Спасибо!
 
Код:
 unset ($_COOKIE['do']['re']);
 
  • Автор темы
  • Заблокирован
  • #3
Бесполезно:oops:
Уж очень нехочется всё это обходить. Может есть у кого велосипедик?
 
Как это бесполезно?
Вот пример кода:
Код:
 $_COOKIES['do']['re']['mi']['fa']['sol']['la']['si']=1;
 $_COOKIES['do']['re']['mi']['fa']['sol']['la']['si2']=2;
echo 'До:<br><br>';
print_r($_COOKIES);
 unset ($_COOKIES['do']['re']);
echo '<br><br><br>После:<br><br>';
 print_r($_COOKIES);

Вот скрин результата: Для просмотра ссылки Войди или Зарегистрируйся
 
Nei, видимо речь о сохранении.. в пределах одной страницы указанный код будет работать.
Extaloinez, попробуйте в эту сторону посмотреть:
Код:
$do = $_COOKIE['do'];
unset ($do['re']);
setcookie('do',$do, $expireTime); //при необходимости указать время, на которое нужно поставить COOKIE
 
  • Автор темы
  • Заблокирован
  • #6
Как это бесполезно?
Вот пример кода:
Код:
 $_COOKIES['do']['re']['mi']['fa']['sol']['la']['si']=1;
 $_COOKIES['do']['re']['mi']['fa']['sol']['la']['si2']=2;
echo 'До:<br><br>';
print_r($_COOKIES);
 unset ($_COOKIES['do']['re']);
echo '<br><br><br>После:<br><br>';
 print_r($_COOKIES);

Вот скрин результата: Для просмотра ссылки Войди или Зарегистрируйся
У тебя куки это переменная вообще чтоль? Где это видано?
 
Да, само-собой setcookie надо добавить, должно работать по идее

P.S. Да, $_COOKIE - это переменная, суперглобальный массив
 
  • Автор темы
  • Заблокирован
  • #8
Да, само-собой setcookie надо добавить, должно работать по идее

P.S. Да, $_COOKIE - это переменная, суперглобальный массив
Ладно, поясню. У пользователя есть несколько cookie
$_COOKIE['do']['re']['mi'] = 1
$_COOKIE['do']['re']['mi']['fa']=2 и т.д.
надо их все удалить.
 
Ладно, поясню. У пользователя есть несколько cookie
$_COOKIE['do']['re']['mi'] = 1
$_COOKIE['do']['re']['mi']['fa']=2 и т.д.
формально, (в массиве $_COOKIE) такого быть не может, т.к.
$_COOKIE['do']['re']['mi']['fa'] выдаст ошибку - нет такого индекса (либо $_COOKIE['do']['re']['mi'] не будет равно единице)

Тем не менее, браузер может передавать оба варианта
Код:
COOKIE[do][re][mi]=1
COOKIE[do][re][mi][fa]=2
и активный будет в зависимости от очерёдности.

А удалять - да, по одному.
Причём, в указанном случае из разбора массива $_COOKIE не получится получить все варианты.
Куки целиком можно выдернуть, разобрав результат функции
Код:
apache_request_headers()
либо
Код:
$_SERVER['HTTP_COOKIE']
 
Назад
Сверху