Хранение элементов корзины покупок в куки и базе данных - PullRequest
2 голосов
/ 09 августа 2011

Я работаю над сайтом электронной коммерции. Когда пользователь не заходит на мой сайт и не нажимает кнопку «Купить сейчас», я хочу сохранить эту информацию в файле cookie, а также в базе данных. Стол для корзины покупок выглядит как

SHOPPING_CART 
(
     sessionid   int(10), 
     itemid      int(10), 
     quantity    tinyint(10) unsigned
     date_added  datetime
);

Первичный ключ: (sessionid, itemid)

Когда пользователь закрывает браузер, элементы корзины покупок также должны быть сохранены. Теперь мой вопрос следующий:

  1. Когда пользователь не заходит на мой сайт, на каком основании я должен идентифицировать пользователя?
  2. Должен ли я хранить информацию, используя IP address? Если да, то КАК? В этом случае sessionid в вышеупомянутой таблице будет IP-адрес пользователя. Правильно?
  3. Должен ли я создать временную сессию для каждого пользователя, который заходит на мой сайт и затем сохраняет информацию? Если да, то КАК?
  4. Как сохранить элементы корзины, даже если пользователь закрывает окно браузера? Должен ли я получить из базы данных или печенье?
  5. Есть ли другой лучший способ хранения и поиска информации?

Примечание 1 : я могу использовать множество доступных программ / кодов / библиотек корзины покупок. Но я хочу знать: Как идентифицировать пользователя? И хранение / поиск данных.

Примечание2 : Цена каждого товара, информация о заказе, информация о доставке хранятся в разных таблицах.

Ответы [ 2 ]

5 голосов
/ 09 августа 2011
  1. Все, что вы можете сделать, это создать уникальную фальшивую личность для пользователя
  2. Нет.Несколько пользователей могут иметь один и тот же IP-адрес, и один пользователь может изменить свой IP-адрес
  3. Да.PHP создаст сессию для вас, как только вы попросите начать сессию.Вы должны связать личность с этим сеансом.Просто используйте случайное число, или генератор UUID, или что-то подобное, чтобы сгенерировать что-то уникальное и не легко угадываемое.Затем сохраните личность в файле cookie, чтобы, когда пользователь возвращается через некоторое время, вы могли повторно связать его личность с новым сеансом.
  4. Я бы просто сохранил личность в куки.Файл cookie содержит только небольшой объем информации и может быть изменен пользователем без вашего ведома.
  5. Если пользователи не входят в систему, я не вижу другого пути.
0 голосов
/ 18 августа 2011

единственное, что вам нужно сделать, это установить sessionid в клиент-cookie.если клиент возвращается и представляет cookie-файл sessionid, вы обновляете таблицу корзины с помощью его нового sessionid (и устанавливаете новый sessionid в cookie).

  1. сеанс (вот для чего он)
  2. нет
  3. 'временная сессия'?
  4. корзина находится в базе данных
  5. лучше в каком смысле?безопасности?надежный?дружественный пользователь?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...