[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не удаляются куки и сессия.
sharki
собсна сам код)

    setcookie("cart","",time()+0);
setcookie("total_items", "",time()+0);
setcookie("total_price", "",time()+0);
unset($_SESSION['cart']);
unset($_SESSION['total_items']);
unset($_SESSION['total_price']);


Он почему то вообще ничего не удаляет и не очищает О_О, уже в разных браузерах посмотрел.



Спустя 2 минуты, 52 секунды (17.05.2011 - 15:36) Snus написал(а):
setcookie('cart','');

Кука удалится при первом же закрытии браузера

$_SESSION['cart'] = NULL;

Спустя 7 минут, 37 секунд (17.05.2011 - 15:43) Zerstoren написал(а):
А если в cart содержится еще один массив?
Разве не возникнет ошибка?

Забыл ее название, суть когда к массиву пытаешься добавить строку или чот подобное

Я порой очищаю сессию $_SESSION = array();
Чистит напрочь все.

Спустя 1 минута, 54 секунды (17.05.2011 - 15:45) killer8080 написал(а):
а зачем нужен time()+0?

Спустя 1 минута, 25 секунд (17.05.2011 - 15:47) killer8080 написал(а):
Цитата (Zerstoren @ 17.05.2011 - 15:43)
А если в cart содержится еще один массив?
Разве не возникнет ошибка?

конечно нет, да и unset() прекрасно работает

Спустя 3 минуты, 52 секунды (17.05.2011 - 15:50) sharki написал(а):
так, щас попробовал с $_SESSION['cart'] = NULL; всё получилось. Но куки не удаляются, как бы сессия пуста, но куки целы и не опусташились.
В куках у меня сериализованный массив сессии.

Как видим нужные сессионные данные удалились,а куки нет.


первый массив это куки, второй сессия

    Array
(
[cart] => a:2:{i:15;i:1;i:14;i:1;}
[total_items] => i:2;
[total_price] => i:98523;
)
Array
(
[clouse] => 1
[user_id] => 3
[fio] => саша
)

Спустя 59 секунд (17.05.2011 - 15:51) linker написал(а):
нужно time() - любое значение, например
setcookie("total_items", "",time() - 3600);

Спустя 51 секунда (17.05.2011 - 15:52) sharki написал(а):
linker
Щас попробую

Спустя 1 минута, 59 секунд (17.05.2011 - 15:54) killer8080 написал(а):
Цитата (killer8080 @ 17.05.2011 - 15:47)
В куках у меня сериализованный массив сессии.

Это как? Весь целиком? Да, и за чем нужны куки, если всё равно данные хранишь в сессии, зачем этот дубляж?

Спустя 2 минуты, 57 секунд (17.05.2011 - 15:57) sharki написал(а):
killer8080
А вот какая нибудь тупая блондинка закроет браузер нечаянно, и корзина очистится =) Я бы с радостью и без кук сделал)

linker
Все равно не пропадают. Щас буду рыть код, может что перекрывает...

Спустя 6 минут, 21 секунда (17.05.2011 - 16:03) killer8080 написал(а):
Цитата (sharki @ 17.05.2011 - 15:57)
А вот какая нибудь тупая блондинка закроет браузер нечаянно, и корзина очистится =) Я бы с радостью и без кук сделал)

Ну если проблема только с временем жизни сессии, то можно сделать чисто на куках.
попробуй в expire вместо time() поставить 0.
setcookie("cart","",0);
setcookie("total_items", "",0);
setcookie("total_price", "",0);


Спустя 12 секунд (17.05.2011 - 16:04) sharki написал(а):
Вообще куки у меня вот так регистрируются, Этот код выполняется каждый раз, когда что-то в корзину добавляют. Почему так, потому что странным образом не перезаписывает существующию куку вот так
$_COOKIE['cart'] = "sfdsf";


Может быть такое, что часы складываются? и в итоге там не один час а больше?

setcookie("cart", serialize($_SESSION['cart']),time()+3600);
setcookie("total_items", serialize($_SESSION['total_items']),time()+3600);
setcookie("total_price", serialize($_SESSION['total_price']),time()+3600);

Спустя 3 минуты, 10 секунд (17.05.2011 - 16:07) killer8080 написал(а):
sharki
на сервере может быть неправильно выставлена временная зона.

Спустя 2 минуты, 3 секунды (17.05.2011 - 16:09) killer8080 написал(а):
Цитата (sharki @ 17.05.2011 - 16:04)
$_COOKIE['cart'] = "sfdsf";

ну вообще то на саму куку манипуляции с массивом никак не влияют. Куки выставляются только через setcookie()

Спустя 24 минуты, 33 секунды (17.05.2011 - 16:33) sharki написал(а):
Сделал проверку на куки, и как они вообще удаляются.
Вывод: Куки удаляются после двух обновлений страницы, как бы два раза должен выполнится тот код и удалить куки. Но у меня после оформления заказа, страница делает редирект на другую, получается что код выполнился только ОДИН раз. и ничего не удалил. Решил так, создал новую сессию типа статуса "on" или "off", так вот при удалении сессий, я выставляю статус в off, и в индексе идет проверка на статус, если off то удалить еще раз куки, если нет то ничего не делать...

Как то так smile.gif


Всем спасибо за помощь)

Спустя 2 минуты, 6 секунд (17.05.2011 - 16:36) linker написал(а):
Удаляй куки до попадания на последнюю нужную страницу.

Спустя 1 минута, 32 секунды (17.05.2011 - 16:37) sharki написал(а):
linker
В моем случае он кидает в ЛК, а если он сам зайдет в ЛК, и куки сотрутся?

Спустя 3 минуты, 3 секунды (17.05.2011 - 16:40) killer8080 написал(а):
в принципе куки можно и не удалять, а просто прописать ''
setcookie("cart", '',time()+3600, "/");
setcookie("total_items", '',time()+3600, "/");
setcookie("total_price", '',time()+3600, "/");

а в коде анализировать не только наличие, но и значение кук.

Спустя 28 дней, 23 часа, 33 минуты, 2 секунды (16.06.2011 - 16:13) Guest написал(а):
Цитата (sharki @ 17.05.2011 - 12:33)
собсна сам код)

    set[SPAN=darling]cookie[/SPAN]("cart","",time()+0);
set[SPAN=darling]cookie[/SPAN]("total_items", "",time()+0);
set[SPAN=darling]cookie[/SPAN]("total_price", "",time()+0);
unset($_SESSION['cart']);
unset($_SESSION['total_items']);
unset($_SESSION['total_price']);


Он почему то вообще ничего не удаляет и не очищает О_О, уже в разных браузерах посмотрел.

какая задача вообще стоит?ты не указал переменную,которую надо поместить в значение, к примеру переменной cart,тем-более зачем-то удаляешь переменные сессии,а не куки,нужно так: unset($_COOKIE['cart']),а задавать вот так: setcookie("cart", "переменная,которую хочешь занести в cart",time()+"время,на которое хочешь занести, "/" (чтобы на каждой странице читалось)"); кавычки нужно только для слэша
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.