Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамическая корзина товаров
 
 автор: sim5   (10.01.2007 в 07:15)   письмо автору
 
 

Задача такая. Пользователь находится на странице товаров, где у любого из них может выставить необходимое ему количтво. Как только он вводит количество товаров, появляется его корзина, в которой динамически отображается количество выбранных товаров и их сумма.
Страница при этом не перегружается - ответ с сервера поступает в iframe.
Теперь пользователь переходит на другую страницу товаров. Ссесия сканируется на наличие товаров у пользователя, и если они есть, готовит страницу товаров и выставляет у iframe атрибут src с url этой страницы.
Имя страницы корзины будет как id ссесии, плюс html расширение. Естественно эта страница нужна только на время работы этой ссесии. Как удалить этот файл, после того как пользователь уйдет с сайта?
Если средствами cron, как это прописать? Ни когда им не пользовался.

   
 
 автор: himic   (10.01.2007 в 07:48)   письмо автору
 
   для: sim5   (10.01.2007 в 07:15)
 

Храни товары пренадлежащие пользователю в базе, храни время заказа товара, ид пользователя
можно оставить и по ид сессии

Допустим юзер ушёл а товары лежат в базе, сделай функцию чистки базы, где время заказа превышает допустим час.
В магазинах делают предупреждение, что в течении часа ваши заказа будут удалены.
на случай потери связи с юзером пиши ид ему в кукисы и время жизни их делай час

   
 
 автор: sim5   (10.01.2007 в 08:13)   письмо автору
 
   для: himic   (10.01.2007 в 07:48)
 

Нет, так не пойдет. Корзина, которую я описал, корзина в которую пользователь предварительно набирает товар. Если он формит заказ, то только тогда эти товары я помещаю в корзину с прочими данными о заказе: дата, юзер и т.д. А для постоянных клиентов, тогда да, я записываю корзину в базу, но не для того чтобы что-то очистить, а это его личная корзина, которую он может пополнять, а уж как захочется оформить заказ.

   
 
 автор: himic   (10.01.2007 в 09:16)   письмо автору
 
   для: sim5   (10.01.2007 в 08:13)
 

Ну не пиши ты в этот файл, а создай новую базу на таких юзерей
а ссылку давай не на НТМЛ файл а на файл с параметром типа tov.php?user=dr15er6gssaer4

   
 
 автор: sim5   (10.01.2007 в 09:30)   письмо автору
 
   для: himic   (10.01.2007 в 09:16)
 

Дело то собственно говоря не в базе как таковой. Для iframe в качесте источника я обязательно должен указать реалную страницу на сайте: src="pathname/file", причем для браузеров NS, FF и Opera, обязательно еще и с раширением html. Мне нужно создавать временный файл, а не базу, а затем уничтожить его.

   
 
 автор: himic   (10.01.2007 в 09:32)   письмо автору
 
   для: sim5   (10.01.2007 в 09:30)
 

Тогда делай так, на форуме было много тем как иммитировать html файл, по идее у тебя будет один файл, но он сможет иммитировать нтмл страницы

   
 
 автор: Trianon   (10.01.2007 в 09:31)   письмо автору
 
   для: sim5   (10.01.2007 в 08:13)
 

личную корзину имеет смысл держать в кукисах.

   
 
 автор: sim5   (10.01.2007 в 09:33)   письмо автору
 
   для: Trianon   (10.01.2007 в 09:31)
 

Ребята дело не в том где мне держать какую-то корзину. Мне надо в контейнер передать адрес реальной страницы, иначе в нем ничего не появиться. Проблема как удалить потом эту страницу.

P.S. >личную корзину имеет смысл держать в кукисах.
А если у пользователя куки отключены, что тогда? Или если он к своей личной корзине обратиться, например, через месяц?

   
 
 автор: Trianon   (10.01.2007 в 09:52)   письмо автору
 
   для: sim5   (10.01.2007 в 09:33)
 

>Проблема как удалить потом эту страницу.

Ну какая такая проблема?
Если страница формируется скриптом динамически, то что вы хотите удалять?
скрипт? Так он общий для всех.
Страницу? Так она уже у пользователя.


>P.S. >личную корзину имеет смысл держать в кукисах.
>А если у пользователя куки отключены, что тогда?

Тогда Вас всё равно ничего не спасет, поскольку сессии без кукисов не то что месяц - и четверти часа не проживут.
Сколько можно говорить, клиента без кукис за клиетна можно не считать.

>и если он к своей личной корзине обратиться, например, через месяц?

Ну по какому адресу он к ней обратится через месяц как к своей?

   
 
 автор: sim5   (10.01.2007 в 10:11)   письмо автору
 
   для: Trianon   (10.01.2007 в 09:52)
 

Так я о том же. Для клиента (не временного покупателя), его корзина пишеться в базу - на то он и уважаемый клиент, ну сервис для него такой. Это не столь важно. Потому и не использую куки.

Повторю еще раз. В iframe при выборе товара гружу корзину - это типа AJAX получается. Пользователь перешел на другую страницу. Все в контейнере этом ни чего не будет, если пользователь ни чего на этой странице не будет выбирать. Но на предыдущей он делал выбор и его корзина не пуста. Для этого я готовлю страничку этой корзины и загружаю ее в контейнер через атрибут src контейнера. Если пользователь и на этой странице начнет выбирать товар, то содержимое (по src) контейнера замениться на новое уже с учетом существующих товаров в корзине. Это собственно только общая информация о выбранных товарах: их общее количество и цена в трех валютах. Если общая их сумма, более минимальной суммы, на которую можно оформить заказ, то тогда только в этом же окне, появляется ссылка, по которой уже можно попасть в корзину с детальным описанием всего заказ, и оформить заказ.

Но если пользователь оформил заказ, или просто ушел с сайта, то этот временный файл информации о выбранных товарах останется. И просматривающих страницы с товарами в сутки как минимум 600 человек. Этих страничек (хоть и мизерных) можно много наплодить.
Вот так подробно понятно, что мне надо сделать?

   
 
 автор: Trianon   (10.01.2007 в 10:22)   письмо автору
 
   для: sim5   (10.01.2007 в 10:11)
 

>то тогда только в этом же окне, появляется ссылка, по которой уже можно попасть в корзину с детальным описанием всего заказ, и оформить заказ.

Только при чем тут файл?
Добавляете запись о заказе в таблицу созданных заказов, которую периодически очищаете от старых (неиспользованных) записей. и Всех делов.
Файлы то плодить зачем, уж коль скоро у Вас БД есть?
На основе этой таблицы и генерирете все эти временные странички. И чистить ничего не надо.

   
 
 автор: himic   (10.01.2007 в 10:02)   письмо автору
 
   для: sim5   (10.01.2007 в 09:33)
 

>>>Мне надо в контейнер передать адрес реальной страницы, иначе в нем ничего не появиться.
Странно???? первый раз такое слышу, может ты прикалываешься над нами?
Ты что, не хочешь работать с GET ?

чем тебе не реальна страница tovar.php?user=srthd1hd1h

   
 
 автор: sim5   (10.01.2007 в 10:27)   письмо автору
 
   для: himic   (10.01.2007 в 10:02)
 

Да нет чтобы написать такое в src=tovar.php?user=srthd1hd1h, мне надо многое переделать заново, а этого не хотелось. Почему - писать долго, да и нужно ли. Ладно все закрываем тему, делаю - src=tovar.php?user=srthd1hd1h, перепишу, так как это будет всетаки лучше.

   
 
 автор: sim5   (19.01.2007 в 22:15)   письмо автору
 
   для: sim5   (10.01.2007 в 10:27)
 

>чем тебе не реальна страница tovar.php?user=srthd1hd1h

Совет был дельный. Все переписал. src у iframe выглядит, например так: "index.php?usr=1".
Все работает отлично. Но есть небольшая "тревога".

Если теперь на стороне клиента в браузере сохранить такую страницу (все производится на локальной машине), то положив ее в корень сайта, и запустив, получим запрос на сохранение файла index.php, и после его сохранения получаем его исходный код. Если же прописать src как: "http://domain/index.php?usr=1", то такого запроса не получим. НО...
Какими чреватыми последствиями это может грозить и реальны ли они?

   
 
 автор: ssdmt_   (20.01.2007 в 11:05)   письмо автору
 
   для: sim5   (10.01.2007 в 09:33)
 

а мне в одной фирме просто сказали или вы включите куки или идите **х! и даже возразить было нечем ..включил и пользуюсь :) ... так что .. не всегда клиент прав как оказывается :)

   
 
 автор: ssdmt_   (20.01.2007 в 11:07)   письмо автору
 
   для: sim5   (10.01.2007 в 07:15)
 

а вообще почитав всё что тут написано .. могу сказать только вот что:
я написал уже 4-е инет магаза.. так НИКОГДА! передо мной не возникали такие проблемы какие тут, а потому что прально была составлена инфологич модель базы данных :) ... всё от пральной структуры данных .... поверьте (это на будущее) .. прошу извинить за то что не написал ничего дельного тут

   
 
 автор: sim5   (20.01.2007 в 14:17)   письмо автору
 
   для: ssdmt_   (20.01.2007 в 11:07)
 

И в этом магазине структура базы данных ни чем не отличается от анологичных магазинов. Просто при выборе товара, информация о корзине выводится без перезагрузки страницы. Все. Какие тут противоречия со структурой базы? Все работает и с базой все в порядке. Просто Opera не правильно отображал данные одной страницы. Я сохранил страницу и положил ее в корень сайта (проблемы заключались в html-части). Вот такая штука и возникла. Спросил, ведь таким способом можно по идее грабить код, я так думаю, но может опять не верно. Так что можно и поклевать меня, ни чего страшного.

   
 
 автор: Night_charter   (20.01.2007 в 16:34)   письмо автору
 
   для: sim5   (20.01.2007 в 14:17)
 

Я в свое время отвел этому вопросу очень много время.
В итоге получилось как на http://www.ozon.ru/

   
 
 автор: sim5   (20.01.2007 в 17:48)   письмо автору
 
   для: Night_charter   (20.01.2007 в 16:34)
 

Посмотрел, понравилось. Но это JS. Подобная плавющая корзина была и у меня, только лишь отличалась, что прикреплена была к левой части экрана, и могла прятаться, если мешала, а также подсчитывала стоимость выбранных товаров в трех валютах. Но мне не хотелось больше использовать JS.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования