Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Корзина (работа с куками) / 21 сообщений из 21, страница 1 из 1
23.09.2003, 09:12
    #32272448
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
Господа, поправьте меня, если не прав:

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

Все хранится в БД, и у каждой записи есть свои идентификаторы.
Если делать так:
Код: plaintext
1.
При добавлении в корзину считывать определенный кукис и через запятую добавлять идентификатор сущности из БД. 
При получении получать массив из кука с разделителем  ","  и строить лист сущностей.


Это будет правильно? Или это делается как то по другому?
...
Рейтинг: 0 / 0
23.09.2003, 10:35
    #32272566
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
вообще то ето делаеться сесиями....
...
Рейтинг: 0 / 0
23.09.2003, 10:50
    #32272589
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
у тебя в куках лежит ид сессии, а уже в базе лежит соответствие сессии, юзера и выбранных товаров. думаю так.

например, две таблицы - сессия-юзер, юзер-товар

тогда если юзер выйдет (куки сотрутся), потом зайдет и у него будет новая сессия, товары в корзине все равно останутся
...
Рейтинг: 0 / 0
23.09.2003, 10:57
    #32272598
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
но это только на время жизни сесии
у меня сессия живет 15 минут, для определения количества активных пользователей

а если чел зайдет завтра, то корзина будет пуста?
...
Рейтинг: 0 / 0
23.09.2003, 11:01
    #32272605
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
по моей схеме корзина будет не пуста.

я не совсем въехал в твою схему, мне показалось, что ты выбранные товары (их айдишники) суешь в куки. а на их размер может быть ограничение...
...
Рейтинг: 0 / 0
23.09.2003, 11:21
    #32272648
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
вот схема мне понравилась на примере автопортала

чекбоксиками отмечаешь товар, он при помощи java на стороне клиента делает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name +  "="  + escape(value) +
      ((expires) ?  "; expires="  + expires.toGMTString() :  "") +
      ((path) ? " ;   path= " + path : "  ") +
      ((domain) ? " ; domain= " + domain : "  ") +
      ((secure) ? " ; secure " : " ");
  document.cookie = curCookie;
}

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

>> мне показалось, что ты выбранные товары (их айдишники) суешь в куки
именно, я вот и пытаюсь спросить круто ли это?
...
Рейтинг: 0 / 0
23.09.2003, 11:35
    #32272672
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
в куках появляется запись:

mychoose
115159---%3E115118---%3E115119---%3E115120---%3E115121---%3E
...
Рейтинг: 0 / 0
23.09.2003, 11:37
    #32272674
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
Фйнкция для работы с добавлением куков привязана к событию OnClick на чекбоксах

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
function selcar(idcar, control)
{

  var today = new Date();
  var expiry = new Date(today.getTime()+ 30 * 24 * 60 * 60 * 1000 );
  var b = eval( "document.forms['listform']." +control);
  var cookstr = new String(getCookie('mychoose'));
  //alert(control+','+idcar);
  //alert(cookstr.indexOf(idcar)+'; '+cookstr);
  if (b.checked)
   { 
     if (cookstr.indexOf(idcar) == - 1  ) 
      {
        if (cookstr.indexOf('null') > - 1 )
         { var newcookie = new String(idcar+ "--->"); }
 
        else
         { var newcookie = new String(cookstr+idcar+" --->"); }
 
        setCookie('mychoose',newcookie,expiry); 
      }
   }
  else
   { 
     if (cookstr.indexOf(idcar) > - 1  ) 
      {
        arrstr = cookstr.split( "--->");
 
        newcookie = " ";
        for (i in arrstr)
         { if((arrstr != idcar) && (arrstr[i] != '')) { newcookie = arrstr[i]+"  [i]--->"+newcookie;} }
 
        setCookie('mychoose',newcookie,expiry); 
      }
   }
}
...
Рейтинг: 0 / 0
23.09.2003, 11:47
    #32272697
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
2Groove
Это не круто, это так и надо....единственная альтернатива - грузить базу текстовым полем с ID товаров в корзине разделённых чем нибудь....
IMHO не вариант
...
Рейтинг: 0 / 0
23.09.2003, 11:57
    #32272716
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
Вопрос снят!
Большое спасибо!
...
Рейтинг: 0 / 0
23.09.2003, 12:09
    #32272728
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
>>>мне показалось, что ты выбранные товары (их айдишники) суешь в куки
>>именно, я вот и пытаюсь спросить круто ли это?
>Это не круто, это так и надо....единственная альтернатива - грузить базу текстовым полем с ID товаров в корзине разделённых чем нибудь....

че-то я отстал от жизни.

зачем в куке хранить что-то кроме айди сессии??? когда можно набор товаров хранить в базе...
...
Рейтинг: 0 / 0
23.09.2003, 13:48
    #32272942
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
А зачем дополнительные транзакции в/из бызы ?
Не ну конечно если эти данные нужны и в далёком будующем, то ладно...тогда и SID передавть в хидере дабы вообще от куков избавиться...
...
Рейтинг: 0 / 0
23.09.2003, 14:25
    #32273002
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
>>А зачем дополнительные транзакции в/из бызы ?
Абсолютно согласен с господином MrGreeN !!!
...
Рейтинг: 0 / 0
23.09.2003, 15:27
    #32273142
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
ну ладно.

действительно, зачем дополнительно доставать коды товаров из базы на локальной машине.

когда можно легко их перегнать по интернету с машины клиента - это ж гораздо быстрее, надежнее, и дает возможность пользователю добавить какие-нибудь коды товаров от себя ;)
...
Рейтинг: 0 / 0
23.09.2003, 15:58
    #32273222
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
А на кой их модифицировать если они уже удалены ???
...
Рейтинг: 0 / 0
23.09.2003, 16:12
    #32273249
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
Это же не ТА корзина, а корзина набора товаров (а не удаления)...
Тогда отставить куки...
...
Рейтинг: 0 / 0
24.09.2003, 03:35
    #32273547
CM Hungry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
В куках не надо хранить id сессии. Тогда если клиент зайдет с другой машины - то все, потеряна корзиночка? В лучшем случае в куках хранится id клиента, если разрешен автологин. В противном случае все хранится на сервере, в базе.

табличка "товары"
табличка "клиенты"
табличка связей "товар-клиент" с параметрами типа "в корзине", "уже покупал" и т.п.
...
Рейтинг: 0 / 0
24.09.2003, 10:45
    #32273769
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
CM Hungry>В куках не надо хранить id сессии. Тогда если клиент зайдет с другой машины - то все, потеряна корзиночка?

я предлагал так:

fedd писал:
у тебя в куках лежит ид сессии, а уже в базе лежит соответствие сессии, юзера и выбранных товаров. думаю так.

например, две таблицы - сессия-юзер, юзер-товар

тогда если юзер выйдет (куки сотрутся), потом зайдет и у него будет новая сессия, товары в корзине все равно останутся


ну почему ж потеряна корзиночка???

сессию закрыл - корзиночку потерял. начал новую сессию - содержимое твоей корзиночки достали из базы, и ни фига она не потеряна.
...
Рейтинг: 0 / 0
24.09.2003, 14:39
    #32274211
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
fedd писал:ну почему ж потеряна корзиночка???

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

вот почему:

Groove писал:но это только на время жизни сесии
у меня сессия живет 15 минут , для определения количества активных пользователей

а если чел зайдет завтра, то корзина будет пуста?
...
Рейтинг: 0 / 0
24.09.2003, 15:24
    #32274319
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
аааааааааааааааа!!!! ;)

1) я ж говорю - корзину хранить в таблице

корзина
=======
ид пользователя
ид товара

а сессию в таблице

сессия
======
ид сессии
ид пользователя
время начала сессии

хоть сессия 100000000 раз кончится, хоть он через год зайдет, сессия будет новая, а товары останутся!!!

2) если хранить корзину в таблице

сессия-корзина
==============
ид сессии
ид пользователя
ид товара
время начала сессии

а тем более в куках, которые живут 15 минут, то конечно, тогда корзина будет пуста!

поскольку запоминается только последняя фраза, пишу:
я не предлагаю вариант 2), я предлагаю вариант 1)
...
Рейтинг: 0 / 0
24.09.2003, 22:38
    #32274746
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Корзина (работа с куками)
да, Groove, ессно это все не про понравившуюся тебе схему "бибики.ру", где javascriptом без перезагрузки пишутся коды товаров в куки. тут конечно, без этого не обойтись....

но я бы так - для совместимости - не делал
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Корзина (работа с куками) / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]