Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Корзина товаров. PHP.

444
18 октября 2008 года
patison
323 / / 15.03.2007
Приветствую, Друзья!
Не так давно появилась необходимость написать скрипт корзины товаров для небольшого сайта. Сразу скажу что регистрации юзеров нет. Просто заказ, средствами сессий или кук. Вот тут-то и встал вопрос - куки или сессии?
Сначала всё было сделано на Сессиях. Но смутило их время жизни. Ладно если-бы только при выходе с сайта умирали... Но так-же после определённого таймаута сессия удаляется. Т.е. холостой простой страницы в течении часа - и корзина обнуляется.
Переделал слегка скрипт, так что-бы заменить сессии куками. Но тут встал вопрос - а что если куки отключены? Вобщем-то это не так-то и витально, я думаю, но всё-же...

зы Система очень проста - добавление товара в сессию/куку (id и кол-во). При заходе на страницу с корзиной - запрос в базу и выборка нужных товаров.

ззыы юзал поиск. нашёл http://forum.codenet.ru/showthread.php?t=32647 - это, но настолько увлёкся чтением темы что так и не уловил общего решения.
8
18 октября 2008 года
mfender
3.5K / / 15.06.2005
Цитата:
холостой простой страницы в течении часа - и корзина обнуляется


а ты думаешь, кто-то что-то сунул в корзинку и пошёл часок новостипосмотретьсдрузьямиобсудить, чтобы потом опять что-то в корзинку положить? :D

244
18 октября 2008 года
UAS
2.0K / / 19.07.2006
Ну дык храни корзину пользователя в БД и всё
444
18 октября 2008 года
patison
323 / / 15.03.2007
mfender: ну знаешь-ли, всякое бывает. я например сидя на работе в офисе, частенько отхожу от компа надолго. И У меня остаются открытыми страницы, с которыми я не закончил работать ;)

UAS: ну тогда всё равно придётся что-то хранить в куках/сессиях, какой-то уникальный ID пользователя (пусть даже временный, пока заказ не сделает)
24K
18 октября 2008 года
ostgals
53 / / 27.08.2007
Еще можно сделать периодическое обращение к серверу через AJAX, чтобы сессия не уничтожалась даже когда браузер открыт очень долго.
274
18 октября 2008 года
Lone Wolf
1.3K / / 26.11.2006
а что мешает время жизни сессии увеличить? или ты хранить вечно хочеш?
444
18 октября 2008 года
patison
323 / / 15.03.2007
Lone Wolf: а каким образом? Насколько я понял, увеличить частоту удалению сессий можно только в php.ini. А доступа к нему у меня нет. Другой вариант есть сменить папку хранения сессий. Тогда скрипт очистки сессий не удалит её, но это по-моему уже какой-то хардкор.
1
18 октября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: patison
mfender: ну знаешь-ли, всякое бывает. я например сидя на работе в офисе, частенько отхожу от компа надолго. И У меня остаются открытыми страницы, с которыми я не закончил работать ;)

UAS: ну тогда всё равно придётся что-то хранить в куках/сессиях, какой-то уникальный ID пользователя (пусть даже временный, пока заказ не сделает)


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

244
18 октября 2008 года
UAS
2.0K / / 19.07.2006
Ну дык ID хранишь в куках и всё. А куку можно хоть на год поставить. Проблем-то %)

Ну а если куки не поддерживаются, то пиши это пользователю. По мне, так уже у всех они включены, так что нет смысла заботиться об этом сильно
8
18 октября 2008 года
mfender
3.5K / / 15.06.2005
Цитата: patison
Насколько я понял, увеличить частоту удалению сессий можно только в php.ini. А доступа к нему у меня нет.


А ты пробовал ini_get() и ini_set() использовать? иногда помогает.

12
18 октября 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: mfender
А ты пробовал ini_get() и ini_set() использовать? иногда помогает.


Врятли это поможет говорит мой склероз напоминая о сборщике мусора.

8
18 октября 2008 года
mfender
3.5K / / 15.06.2005
сборщик мусора работает избирательно. ну, во всяком случае у меня... если, конечно, сессии не сувать в TMP...
12
18 октября 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: mfender
сборщик мусора работает избирательно. ну, во всяком случае у меня...


Так время указанное в php.ini для сборщика мусора не является гарантированным. Т.е. это не гарантирует, что сессия будет точно удалена в указанное время. Она просто гаратнирует, что сессия не будет уделена раньше это времени. Поэтому реально сессия может прожить еще дотаточно долго.

444
18 октября 2008 года
patison
323 / / 15.03.2007
mfender: насколько я знаю, сессии хранятся в папке tmp. именно поэтому я и написал о смене папки хранения.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог