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

Ваш аккаунт

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

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

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

размер куков

254
02 ноября 2011 года
Cker
341 / / 20.08.2000
столкнулся с ограничением размера куков. Можно это как-то преодолеть?
4
02 ноября 2011 года
mike
3.7K / / 01.10.2002
Цитата: Cker
столкнулся с ограничением размера куков. Можно это как-то преодолеть?



Нет. Нужно хранить меньше куков. В идеале одну - идентификатор сессии/пользователя.

369
03 ноября 2011 года
Kesano
451 / / 09.10.2007
Если есть интернет-магазин, пару id товара - количество (в корзине) удобней держать в сессии или в куке?
13
03 ноября 2011 года
RussianSpy
3.0K / / 04.07.2006
Ну судя по тому, что в куки не вмещается, там далеко не пара товаров ;)
5
03 ноября 2011 года
hardcase
4.5K / / 09.08.2005
Есть локальные хранилища (web storage), но они работают не во всех браузерах.
12
04 ноября 2011 года
alekciy
3.0K / / 13.12.2005
Цитата: Kesano
Если есть интернет-магазин, пару id товара - количество (в корзине) удобней держать в сессии или в куке?


Все временные данные связанные с конкретным пользователем нужно держать в сессии, а в куке ходит лишь id это сессии. Обратное есть ересь и подлежит изжить быть.

К id сессии так же стоит добавлять куку-токен. И ассоциировать определенного юзера только по паре сессия-токен.

369
04 ноября 2011 года
Kesano
451 / / 09.10.2007
Цитата: alekciy
Все временные данные связанные с конкретным пользователем нужно держать в сессии, а в куке ходит лишь id это сессии. Обратное есть ересь и подлежит изжить быть.

К id сессии так же стоит добавлять куку-токен. И ассоциировать определенного юзера только по паре сессия-токен.



По-подробнее... Допустим, при авторизации (или так просто) я создал сессию и создал куку-токен...
Как вы предложите создать куку-токен (какое значение, МД5 даты и логина или что-то еще) И ведь если сессия закончится, то мне не с чем будет сопоставлять токен.
Или генерировать токен при авторизации и записывать его в базу в таблицу с логином\паролем?
Да и какой в этом смысл? бред...

Но я уже придумал, как сохранять состояние корзины..

12
05 ноября 2011 года
alekciy
3.0K / / 13.12.2005
Цитата: Kesano
По-подробнее... Допустим, при авторизации (или так просто) я создал сессию и создал куку-токен...
Как вы предложите создать куку-токен (какое значение, МД5 даты и логина или что-то еще) И ведь если сессия закончится, то мне не с чем будет сопоставлять токен.
Или генерировать токен при авторизации и записывать его в базу в таблицу с логином\паролем?
Да и какой в этом смысл? бред...

Но я уже придумал, как сохранять состояние корзины..


Сессия может закончиться, её может снести сборщик мусора, файлы сессий могут быть просто потерты. Поэтому значащие данные всегда должны записываться в базу. Потому что сессия может быть утеряна, а данные нет.

Теперь касательно id-шника сессии записываемого в куки. Это просто тупо строка символов. И значит можно тупо перебором без всякого перехвата генерить эти id-шки и с шансом отличным от нуля можно будет получить доступ не к своей сессии. А в сессии у нас, к примеру, записан user_id и факт идентификации движок отслеживает именно по нему. Много ли народу мониторит access логи на факты брудфоста? О_о

Вот тут и нужна вторая кука-токен. Угадать пару из двух кук уже практически невозможно. И конечно же пишем эту куку в базу, ведь мы помним, что данные терять нельзя ;) Возражения про нагрузку на базу не принимаются, потому что а) база тюниться; б) кэш, кэш и еще раз кэш; в) зачастую обычно забывают, что сессия это вообще то по дефолту файл и нагрузка на ФС сервера больше, чем на сервер БД. Сверху все конечно же сдабривается https-ом.

В общем это совсем не бред, а тонкости из оперы "не фигачте переменные из $_GET напрямую в SQL запросы".

369
05 ноября 2011 года
Kesano
451 / / 09.10.2007
Цитата: alekciy
Сессия может закончиться, её может снести сборщик мусора, файлы сессий могут быть просто потерты. Поэтому значащие данные всегда должны записываться в базу. Потому что сессия может быть утеряна, а данные нет.
В общем это совсем не бред, а тонкости из оперы "не фигачте переменные из $_GET напрямую в SQL запросы".


Фу-фу-фу! ) Из гета прямо в скуль... фу-фу-фу... Всё не так плохо как вы говорите.

Опять же, вопрос рационализма.
Угадать пару токен-сессия... или айди сессии.. Проще логин с паролем подобрать )
При том что чуть менее чем на 100% ресурсов логин виден вполне отчетливо.
По сути задача где-то хранить временные данные корзины. id товара и его количество. Напомните пожалуйста и приведите пример, можно ли в Куку совать массив? насколько мне не изменяет память, только строку. А это печально.
Если хранить в сессии, то, по вашему утверждению, это доп. нагрузка на ФС сервера. тут уже зависит от коль-ва пользователей в сутки. И не забываем что БД это тоже файл на сервере. Только бОльшего размера.
Как вариант, сделать таблицу cart, и забивать её данными user_id, sku_id, quantity... И иметь возможность хранить все корзины в БД, не заморачиваясь с сессиями и куками. Но что тогда делать с юзерами, которые набили корзину не зарегистрировавшись, а потом ушли с сайта и забили болт... тогда толку от данных будет 0 и нужно периодически чистить таблицу от мусора.

Всё же думаю, правильно будет держать данные по корзине в сессии... Если юзер забил - его проблемы...

244
05 ноября 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
Всё же думаю, правильно будет держать данные по корзине в сессии...

А вдруг я зайду с другого браузера или с другого компа? Тогда все данные сессии потеряются и мои покупки улетят в никуда.

А вообще я сам уже давно сессию храню в БД.

Цитата:
и нужно периодически чистить таблицу от мусора

И что? Файл сессий тоже периодически чистятся. А чистить таблицу намного проще и удобнее.

369
05 ноября 2011 года
Kesano
451 / / 09.10.2007
Цитата: UAS
А вдруг я зайду с другого браузера или с другого компа? Тогда все данные сессии потеряются и мои покупки улетят в никуда.



Это концептуально, но выходит за рамки здравого смысла, чтобы не зарегистрировавшись (важно!) набивать корзину с одного браузера\компа, а потом бежать к другому... Вы никак не свяжете эти данные. НИКАК.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог