Forum Webscript.Ru

Программирование => PHP => Тема начата: tarya от 17 Сентября 2003, 19:39:46

Название: проблема с куки и созданием массива
Отправлено: tarya от 17 Сентября 2003, 19:39:46
Добрый день



у меня проблема с куки и созданием масива


есть


if ($action == "addproduct")
{
setcookie ("basket[]", $product, time()+7200); //установить куки
header ("Location: $url"); //вернуться на страницу где были
}
 

которая принимая значение устанавливает куки basket... для того чтоб  образовался масив при последующих получениях значений я почитал и стал использовать basket[] ... но на удивление масив нерастет и все время равен 1 позиции.

в чем дело? ведь я в справочнике читал что можно не устанавливать индекс basket[0---n] а просто писать basket[]


как быть?

спасибо большое за помощь
Название: проблема с куки и созданием массива
Отправлено: Меняздесьдавнонет от 17 Сентября 2003, 20:41:13
покажи, деж ты читал.

с какойстати браузер будет запоминать разные куки с одним именем?

вот послал ты куку name=vasya
а потом
name=petya

по-твоему, браузер сохранит обе?
Название: проблема с куки и созданием массива
Отправлено: tarya от 18 Сентября 2003, 11:55:09
Цитировать
RomikChef:
покажи, деж ты читал.


Привет!

У меня две есть книги по пхп, ну есть еще одна но я ей непользуюсь,... одна В. Гилмор, и справочник хороший купил И. Григин, так вот там я читал в обоих и сравнивал что через куки свободно можно передавать масивы



setcookie ("basket[0]", 1, time()+7200);
setcookie ("basket[1]", 2, time()+7200);
setcookie ("basket[2]", 3, time()+7200);
setcookie ("basket[3]", 4, time()+7200);

$basket[0] == 1
$basket[1] == 2
$basket[2] == 3
$basket[3] == 4




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



$basket[] = 1
$basket[] = 2
$basket[] = 3
$basket[] = 4

будет

$basket[0] == 1
$basket[1] == 2
$basket[2] == 3
$basket[3] == 4


но всеже неработает, вот почему я всеже решился спросить опять а то уже стыдно.... :)


вообще как мне быть тогда? если мне нужно нарастить массив?


Спасибо большое за помощь
Название: проблема с куки и созданием массива
Отправлено: MrGreeN от 18 Сентября 2003, 12:34:06
Может так
$backets=unserialize($backet);
$n=count($baskets)+count($new_element_array);
 array_pad ($baskets, $n, $new_element_array);
$b=serialize($backets);
setcookie ("basket", $b, time()+7200)

или так
$backets=unserialize($backet);
array_push($backets, $new_element_array);
$b=serialize($backets);
setcookie ("basket", $b, time()+7200)

// $new_element_array - твои новые эл-ты
Название: проблема с куки и созданием массива
Отправлено: Макс от 18 Сентября 2003, 13:18:20
если в массиве basket будут только числа то вполне можно обойтись
setcookie("basket", implode(" ", $baskets), .....);
и
$baskets = explode(" ", $_COOKIE[\'basket\']);

ЗЫ
имхо через сессии корзину делать гораздо удобнее и правильнее
Название: проблема с куки и созданием массива
Отправлено: tarya от 18 Сентября 2003, 13:44:16
Цитировать
Макс:
имхо через сессии корзину делать гораздо удобнее и правильнее



я как то еще никогда непользовался сессиями, но видно сегодня все что есть прочту за них
Название: проблема с куки и созданием массива
Отправлено: Меняздесьдавнонет от 18 Сентября 2003, 17:42:00
гилмор есть в сети.
Дай ссылку на то место, где ты прочитал у него, чтоо можно ставить без цифр.
Как я уже писал - как я понимаю, это невозможно по определению.
кук с ОДИНАКОВЫМ именем быть не может.

по сессиям читай тут
http://faq.phpclub.net/sess