Cookie & array

fynjah

Новичок
Приветствую, друзья.
Сразу прошу больно ногами не бить - я начинающий:)

Ситуация:
Пишу простейший инет магаз. нужна корзина. корзину храню в куках.
соответственно корзина это массив пар $id => $num, где $num - кол-во продуктов.
массив сериализую и записываю в куку. соответственно при чтении - unserialize.

Все хорошо работает на добавление, но вот при удалении происходит нежданчик.

логика удаления проста: читаем куку, вскрываем, достаем масив, из него по заданному $id удаляем unset($products[$id])
после этого сериализую массив и записываю обратно в куку.

так вот, оно не удаляет из массива пару(
О, гиганты мысли - помогите плз :(



PHP:
	function delete($id)
	{
		if (isset($_COOKIE['shop_cart']))
		{
			$products = unserialize(stripcslashes($_COOKIE['shop_cart']));

			unset($products[$id]);
			if ($products[$id] == null)
			{
				SetCookie('shop_cart',serialize($products) , time()+3600);
				return true;	
			}
			else
			{
				return false;
			}
			
		}
	}
и кстати сразу отмечу, что даже в таком варианте тоже не меняет:

PHP:
	function delete($id)
	{
		if (isset($_COOKIE['shop_cart']))
		{
			$products = unserialize(stripcslashes($_COOKIE['shop_cart']));
			unset($products[$id]);
			SetCookie('shop_cart',serialize($products) , time()+3600);

		}
	}
 

С.

Продвинутый новичок
логика удаления проста: читаем куку, вскрываем, достаем масив, из него по заданному $id удаляем unset($products[$id])
после этого сериализую массив и записываю обратно в куку.

так вот, оно не удаляет из массива пару(
Так не удаляет из массива или не записывает обратно в куку?
 

fynjah

Новичок
если честно я не определил еще. проблема возникла вчера ечером, а сегодня еще руки до кодинга не дошли.
подозреваю, что не записывает в куку.


упд: я пытался почистить куку, до записи...
PHP:
SetCookie('shop_cart', '', time()-3600);

не помогло, все равно в куке лежат старые данные
 

antson

Новичок
Партнер клуба
fynjah
и что будем делать, при размере куки в 4 килобайта ?
Может пока не поздно в базу хранение корзины перенести ?
 

fynjah

Новичок
Спасибо за совет. Наверно так и сделаю.

Куками решил пользоваться из-за маленького размера магазина(буквально 12-13 наименований), но разрабатываю со взглядом в будущее и упустил момент размера кук.
 

radioheaded

PHP нуб
У вас в обоих кусках кода ошибки. Вывод ошибок отключен или вы их просто игнорируете?

PHP:
unset($products[$id]);
if ($products[$id] == null)
Notice

PHP:
$products = unserialize(stripcslashes($_COOKIE['shop_cart']));
Может сначала десериализуем, а потом уже все остальное делать будем?

Дебажьте, в общем.
 
Сверху