Запись куков Java Script-ом и чтение их потом PHP

Leonid

PHP? нет, не слышал...
Запись куков Java Script-ом и чтение их потом PHP

При заказе товара на сайте необходимо в куки записать массив данных: ID товара, количество, и еще 2 параметра товара. Делаю это java script ом. (Функцию нашел на этом форуме, только немного изменил)

value = new Array();

value[0] = tovarID; // 100
value[1] = number; // 5
value[2] = materialID; // 2
value[3] = sizeID; // 3

var today = new Date();
var name = "zakaz";

expires = new Date(today.getTime() + days*24*60*60*1000);
document.cookie = name + "=" + escape(value) +"; expires=" + expires.toGMTString();

Кука устанавливается, но когда я ее читаю в PHP

echo $_COOKIE['zakaz'] выводится 100,5,2,3 - все числа через запятую, если

Echo $_COOKIE['zakaz'][0] - выводится 1, т.е. первый символ строки 100,5,2,3.

Т.е. массив JavaSkripta отличается от массива PHP, это в принципе так и должно быть. А как запихнуть в куку идентичные массивы?

Я решил пихать в куку не массив, а строку, объединив все цифры, например символом "!", а разные группы символом "%", потом PHP читает эту строку из куков, режет по %, потом по !.
Не очень изящный метод на мой взгляд.

Кто-нибудь сталкивался с подобной задачей? Поделитесь
 

Leonid

PHP? нет, не слышал...
Почему строку? Я создаю массив, присваюваю значения 4 его элементам и пихаю в куку....
 

Фанат

oncle terrible
Команда форума
Дело не в том, что массивJavaSkripta отличается от массива PHP.
А в том, что ты вообще не понимаешь, что такое программа, и что такое ПЕРЕМЕННАЯ в программе.
Что переменная ВООБЩЕ, В ПРИНЦИПЕ не может существовать вне программы.

ты можешь передать программе на обработку строку ДАННЫХ, которую программа назначит ПЕРЕМЕННОЙ.
Но говорить о передаче переменной из одной программы в другую - бессмыслица.

-~{}~ 25.08.05 10:02:

типичный пример, когда я понимаю, ЧТО человек не понимает.
и объясняю ему именно это, а не ответ на тот вопрос, который он задал

Жаль, кроме меня почти никто на это не способен.
 

Leonid

PHP? нет, не слышал...
Автор оригинала: SiMM
Не нужно в куках пытаться таскать всякую фигню.
PHP FAQ: Сессии. Подробное описание работы и объяснение механизма.

> Т.е. массив JavaSkripta отличается от массива PHP
При чём тут массив, если в куку ты пишешь строку?
Я естественно предпочел бы работать с сессией, а не с куками, но как JavaScript - ом записать строку в сессионную переменную? Я нигде не нашел...
 

Фанат

oncle terrible
Команда форума
AJAX
но лично я предпочитаю старый добрый НТТР.
терять клиента из-за того, что идиот админ отрубил яваскрипт, "который таит в себе опасности" - дело, конечно, хозяйское, но лично я бы не стал
 

SiMM

Новичок
> но как JavaScript - ом записать строку в сессионную переменную?
А зачем? Чел выбирает сколько каких товаров с текущей страницы хочет купить, жмёт сабмит - и всё. Чего тут с JavaScript'ом-то мудрить?
 

Фанат

oncle terrible
Команда форума
почему-то некоторые вебмастера боятся перезагрузки страницы как чёрт - ладана
 

Leonid

PHP? нет, не слышал...
Не одной странице до может быть до 40 товаров. У каждого товара надо выбрать
1. Размер (select)
2. Материал (select)
3. Количество.

Если весь этот выбор сразу поместить на одну страницу, будет путаница.... По этому у каждого товара есть ссылочка "заказать". Нажимаешь - открывается маленькое окошечко, на нем: фото, название, выбор параметров, кнопка "добавить в заказ". При ее нажатии параметры сохраняются в сессию или куку javascriptom, чтобы не перегружать страницу (до этого так и было сделано).
Но если нужно заказать 10-30 разных товаров (это не книжный магазин, а знаки и плакаты безопасности для предприятий) то это отнимет много времени.
 

Фанат

oncle terrible
Команда форума
непонятно.
какая проблема перезагрузить это самое маленькое окошко?!
 

Leonid

PHP? нет, не слышал...
Да нет проблемы перегрузить окошко, просто на это потребуется время, а если просто записать данные в сессию и закрыть окно, то времени это совсем не займет.

-~{}~ 25.08.05 10:50:

Фанат, так вообще можно javaScripto-ом записать данные в сессионную переменную, а потом читать ее PHP? Если да, то как?
 

Фанат

oncle terrible
Команда форума
Да нет проблемы перегрузить окошко, просто на это потребуется время
КАКОЕ ВРЕМЯ? Ты бредишь?

Фанат, так вообще можно javaScripto-ом записать данные в сессионную переменную, а потом читать ее PHP? Если да, то как?
я ответил.
 
Сверху