| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Корзина |
| Автор: f999t1 19.2.2013, 00:17 | ||
| подскажите пожалуйста с построением корзины или точнее с алгоритмом построения корзины на сессиях. уже кучу сайтов перерыл, везде по разному описано, короче сейчас каша в голове. пока создалось такое представление, что надо на каждой странице открыть сессию session_start() далее для каждого пользователя присвоится уникальный индификатор ( 32 знака.) тут первый вопрос куда его записывать? и вообще надо ли его где-то хранить в какой либо переменной. далее нажимаю на позицию товара и пересылаю id товара и какой либо его параметр в массив $_SESSION а на странице самой корзины уже извлекаю данные из этого массива. вот еще код нашел корзины http://www.web-shpargalka.ru/scripti/corzina1.php
здесь первая часть кода. посетителям присваивают уникальные номера. не пойму зачем два раза к базе коннектится? зачем увеличивать число при каждом вхождении и вообще можно ли обойтись без записи в базу данных количества посетителей? и откуда взялся $_SESSION['talon'] почему именно `talon`? Полная неразбериха. Подскажите с этими сессиями В остальном коде из примера все понятно. |
| Автор: DioNiR 19.2.2013, 09:51 | ||||||||||||
Потому что кто писал эту статью идиот не знающий как программировать...
Ответ выше.
Можно записывать в файл... То что предлагают они полный бред!
$_SESSION['talon'] берется от сюда:
А потому что автор статьи идиот по этому |
| Автор: f999t1 19.2.2013, 10:06 |
| резко вы об авторе. может подскажите какую-нибудь статью, где правильно описано? |
| Автор: Aliance 19.2.2013, 10:15 | ||
Неправильное использование функции:
http://www.php.net/manual/ru/features.sessions.php |
| Автор: f999t1 19.2.2013, 10:34 |
| а чтонибудь применительно для корзины есть примеры? про сессии теорию уже читал, но на практике никак не могу применить. а те примеры которые нахожу, все как-то совсем по разному написаны, да еще как здесь говорят неправильны |
| Автор: Aliance 19.2.2013, 11:12 |
| Подход "я не особо хочу разбираться и думать, хочу готовую корзину, чтоб все работало магическим образом с коробки" не правилен! Поэтому тут мало кто захочет идти по такому пути и помогать в нем. Правильным будет разобраться с работой сессий, продумать архитектуру (что такое корзина? для чего она нужна? каким требованиям отвечает?) и применить необходимые знания на разработанной схеме. |
| Автор: f999t1 19.2.2013, 12:01 |
| я не прошу готовую корзину. дайте правильный пример с сессией. По одной только теории не получается разобраться. Еще раз повторю вопрос, что делать с индефикатором пользователя? Его надо проверять или просто забить на него, заполняя в $_SESSION id для товаров? |
| Автор: skyboy 19.2.2013, 12:17 |
| давай, сначала, разберемся с ожиданиями как работает "корзина"? ну, в терминах "выбираем, сохраняется, перезагрука страницы" и т.д. а там уже перейдем к тому, как подцепить сессии для реализации |
| Автор: Aliance 19.2.2013, 12:19 | ||
| Еще раз повторяю ответ: зависит от того, как вы спроектируете и что вам нужно. Воспринимайте $_SESSION как обыкновенный массив, n-мерный. Хотите - пишите так:
А вообще в сессии есть смысл хранить только для незарегистрированных пользователей данные. Для зарегистрированных - есть База (с табличкой, например, user_cart). |
| Автор: f999t1 19.2.2013, 12:46 | ||||
я предполагаю, что в начале нажимаем на кнопку "добавить" на странице с товаром. при этом остаемся на той же странице, потом переходим на страницу корзины и там редактируем ее , удаляем, изменяем количество. незарегестрированный пользователь может добалять в корзину, но офрмлять заказ не может.
если пользователь не зареган, то надо вместо USER_ID писать значение session_id() ? |
| Автор: Aliance 19.2.2013, 13:15 |
| А зачем? Сессию другой никто не получит, зачем ее там персонифицировать? Когда куку ставишь с нулевым временем - она становится сессионной (то есть до закрытия вкладки), и по своему поведению аналогична сессии. |
| Автор: f999t1 19.2.2013, 13:31 |
| то есть для каждого вошедшего пользователя своя сессия. и соответственно свой n мерный массив. в которую записываю все данные, которые нужны: id товара, количество еще что-то, а потом на другой странице вытаскиваю данные из него без всяких GET и POST. id сессии мне вообще никак не надо использовать. после того как заказ сформирован, все эти данные записываю в таблицу заказов. Предварительно присвоив новому пользователю ID. |
| Автор: Aliance 19.2.2013, 14:23 |
| Не увидел вопроса в последнем посте, но да - все правильно написано. вообще http://www.php.net/manual/ru/session.idpassing.php, обычно это делается в куках сессионных. |