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

  • Автор темы Автор темы Leonid
  • Дата начала Дата начала

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 читает эту строку из куков, режет по %, потом по !.
Не очень изящный метод на мой взгляд.

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

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

-~{}~ 25.08.05 10:02:

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

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

> Т.е. массив JavaSkripta отличается от массива PHP
При чём тут массив, если в куку ты пишешь строку?
Я естественно предпочел бы работать с сессией, а не с куками, но как JavaScript - ом записать строку в сессионную переменную? Я нигде не нашел...
 
AJAX
но лично я предпочитаю старый добрый НТТР.
терять клиента из-за того, что идиот админ отрубил яваскрипт, "который таит в себе опасности" - дело, конечно, хозяйское, но лично я бы не стал
 
> но как JavaScript - ом записать строку в сессионную переменную?
А зачем? Чел выбирает сколько каких товаров с текущей страницы хочет купить, жмёт сабмит - и всё. Чего тут с JavaScript'ом-то мудрить?
 
почему-то некоторые вебмастера боятся перезагрузки страницы как чёрт - ладана
 
Не одной странице до может быть до 40 товаров. У каждого товара надо выбрать
1. Размер (select)
2. Материал (select)
3. Количество.

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

-~{}~ 25.08.05 10:50:

Фанат, так вообще можно javaScripto-ом записать данные в сессионную переменную, а потом читать ее PHP? Если да, то как?
 
Да нет проблемы перегрузить окошко, просто на это потребуется время
КАКОЕ ВРЕМЯ? Ты бредишь?

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