| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как хранить товары в корзине? |
| Автор: Jiffi 27.5.2011, 13:11 |
| У меня только одно соображение - в cookies, но возникает вопрос, как хранить там несколько товаров? |
| Автор: ayax2005 27.5.2011, 13:35 |
| Корзина обычно хранится в сессии. |
| Автор: Jiffi 27.5.2011, 14:30 |
| А если пользователь не сразу хочет оформить заказ, а потом? |
| Автор: wwwalera 27.5.2011, 21:38 | ||
новую таблицу в бд и напоминание в следующих сессиях |
| Автор: Valinur 27.5.2011, 23:50 | ||
| можно хранить в базе, создать строковое поле и добавлять туда ID товаров через запятую. А когда будешь показывать товары в корзине делай обычный
|
| Автор: Jiffi 28.5.2011, 00:21 |
| а как тогда напомнить пользователю, что он выбрал в прошлый раз, ели сессию он разорвал? |
| Автор: wwwalera 28.5.2011, 00:43 | ||
ну обычно при совершении покупок с корзины ,а не через оператора, пользователь авторизируется |
| Автор: skyboy 29.5.2011, 23:59 |
| подытожу: 1. чисто список в куках. недостатком привязка к компьютеру и технические ограничения(сколько там в куку можно запихнуть?). достоинство - может хранится бесконечно в отличие от сесионной информации. 2. в сессии. так как идентификатор сессии по-прежнему в куках, то привязка к компьютеру остается. плюс через определенное время неактивности сборщик мусора кокнет сессию. что тоже минус. 3. в базе данных. минусом - обязательность регистрации(а к чему ещё привязываться, кроме логина и пароля? к сессии, которая истечет? к кукам, которые только на одном компьютере?). плюсом - на любом компе можно получиться доступ. плюс статистика на серверной стороне(уж не знаю, для чего). из того, что встречал вживую и нахожу удобным: гибридная система. регистрация не требуется, корзина хранится в сессии(дополнительная безопасность: если компьютер общественный и человек не завершил оформление заказа, то через, скажем, полчаса другой пользователь уже не узнает, "что ж там Вася заказывал?"). при регистрации содержимое корзины сохраняется в БД и для залогиненных уже работает сохранение в БД. с одной стороны, обязательна возможность заказа без обязательной регистрации, с другой стороны, если уж надумал региться, чтоб не закончилось "#%#$%! Я столько товаров надобавлял, а после регистрации корзина обнулилась!" |
| Автор: Jiffi 30.5.2011, 00:45 |
| магазин региональный (масштаб охвата не большой). Регистрация я думаю лишняя (смысла пока что не вижу). А если сделать такой гибрид: В cookies хранить уникальный номер (PIN) А в БД сделать таблицу: id | pin | id_tovara И соответственно читать cookies и искать в этой таблице, какой товар лежит в корзине. Так же можно выдавать этот пин пользователю и он может ввести его на другом компьютере и посмотреть корзину + можно дать возможность удалять cookies и никто не узнает "что ж там Вася заказывал?" Идея рабочая? |
| Автор: skyboy 30.5.2011, 16:07 |
и кто угодно сможет посмотреть в чужую "корзину"? И адрес доставки тоже увидеть? а чем отличается этот "пин" от связки "логин+пароль"? |
| Автор: xarakiry 30.5.2011, 20:11 | ||||
| Зачем же засорять базу информацией, которая вообще может и не понадобиться. Я делаю на сессиях. К примеру у нас 3 товара с id 1,2 и 3 Бросаем в сессию
если нужно еще и хранить сумму и количество и какие либо другие параметры товара, то многомерный массив помогает
и т.д А потом легко просто получить и общую стоимость товара и количество заказанных. |