Автор Тема: отсылка нескольких кук  (Прочитано 7181 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
отсылка нескольких кук
« : 30 Октября 2004, 13:47:24 »
Проясните мне, пожалуйста, следующую ситуацию.

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

Я решил написать простенькую систему учёта доступа к сайту и для этого завёл ещё одну всегда "вечную" куку, которая записывается юзеру при первом посещении сайта.

Итак, когда человек заходит гостём, ему даются 2 куки: "вечная" и кука сеанса, существующая до закрытия окна.
Set-Cookie: seans=someID1;
Set-Cookie: first_session=someID1; expires=Tue, 28-Oct-2014 09:26:56 GMT
(path и domain для краткости опускаю, someIDi - на практике длинные числа)
После закрытия окна в системной папке виндов Cookies сохраняется, естественно, только вечная кука в файле fileName[1].

Когда он снова зайдёт как гость, а потом авторизуется, ему пришлют 2 вечные куки.
Set-Cookie: seans=someID2; expires=Tue, 28-Oct-2014 09:27:30 GMT
Set-Cookie: first_session=someID1; expires=Tue, 28-Oct-2014 09:27:30 GMT
.

Теперь начинается непонятное для меня. После закрытия окна в папку Cookies добавляется файл fileName[2] с двумя куками, при этом fileName[1] остаётся. Почему так???
Т.е. в fileName[1] и fileName[2] находится абсолютно одинаковая инфа об одной и той же куке first_session (+ в fileName[2] инфа о куке seans). Почему броузер не удаляет fileName[1] или не пишет 2 новые куки именно в него?
В моём случае значение куки first_session в обоих файлах одинаковое, а что произойдёт, если я буду разные писать? Какое из них будет выбрано для чтения?
Как это исправить, чтобы на ПК посетителя хранился только 1 экземпляр куки с конкретным именем?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
отсылка нескольких кук
« Ответ #1 : 30 Октября 2004, 13:55:25 »
Какая тебе разница, что там какая-то левая программка пишет у себя на диск?

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
отсылка нескольких кук
« Ответ #2 : 30 Октября 2004, 13:59:21 »
Это не совсем левая программка, а Интернет Эксплорер 6.0. :)
А вообще: она ведь мне будет отдавать эту куку, и я в соответствии с ней буду что-то делать. И если она хранит несколько вариантов одной и той же куки, то где гарантия, что она мне вернёт актуальную?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
отсылка нескольких кук
« Ответ #3 : 30 Октября 2004, 14:00:37 »
проблема твоя не в браузере, конечно же, а в том, что ты
1. сам не значешь, чего хочешь.
2. даешь своим кукам совершенно фантастические имена.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
отсылка нескольких кук
« Ответ #4 : 30 Октября 2004, 14:01:16 »
Цитировать
где гарантия, что она мне вернёт актуальную?

в RFC

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
отсылка нескольких кук
« Ответ #5 : 30 Октября 2004, 14:09:31 »
Цитировать
RomikChef:
проблема твоя не в браузере, конечно же, а в том, что ты
1. сам не значешь, чего хочешь.

А по-моему знаю. При ведении системы гость/не-гость хочу также следить за тем, был ли у нас этот гость или нет.
Можно, конечно, всем писать одну вечную куку, а потом удалять из базы те сессии, в которых никто так и не авторизовался.
Но это не выход, т.к. я ещё хочу вести учёт открытия/закрытия окна с сайтом для тех юзеров, которых всегда помнят (т.е. у которых вечная кука) - для этого писать им куку, действительную только до закрытия окна.
Цитировать
RomikChef:
2. даешь своим кукам совершенно фантастические имена.

В RFC есть критерий фантастического имени? :)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
отсылка нескольких кук
« Ответ #6 : 30 Октября 2004, 14:24:33 »
Хотеть ты можешь все, что угодно.
Хоть на луну.
Не буду препятствовать.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
отсылка нескольких кук
« Ответ #7 : 30 Октября 2004, 14:31:32 »
RomikChef, не вижу пока у себя на пути никаких препятствий для осуществления желаемого за исключением вот этих вот непоняток.

2all: может ли кто-нибудь по существу что-либо посоветовать? Кстати, иногда IE пишет 2 "вечные" куки в тот же самый файл, где была одна, а иногда создаёт новый. Может быть, при чтении куки он её даст из более нового по времени модификации файла?

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
отсылка нескольких кук
« Ответ #8 : 30 Октября 2004, 14:57:05 »
чего-то я не понял проблему..
ну кинуть один кук, с парочкой параметров: один навсегда, а другой твой временный. когда он придет снова - временный параметр перезапишешь и все..
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
отсылка нескольких кук
« Ответ #9 : 30 Октября 2004, 15:00:58 »
Цитировать
Forza:
Т.е. в fileName[1] и fileName[2] находится абсолютно одинаковая инфа об одной и той же куке first_session (+ в fileName[2] инфа о куке seans). Почему броузер не удаляет fileName[1] или не пишет 2 новые куки именно в него? В моём случае значение куки first_session в обоих файлах одинаковое, а что произойдёт, если я буду разные писать? Какое из них будет выбрано для чтения?

по-моему RomikChef прав, когда сказал что плевать тебе надо на то, что делает какая-то там программа, пусть даже и IE ,главное чтоб работало.. :) это позиция сервера, а остальное проблема клиета
 в исканиях.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
отсылка нескольких кук
« Ответ #10 : 30 Октября 2004, 15:07:46 »
Forza
Вообще IMHO закидывать в куку что-то кроме first_session - не зачем,
Храниш этот уникальный ID в базе, и определяешь его либо гостем либо пользователем, причем это определение может меняться при авторизации и наоборот... и считать можно сколько раз эта кука приходила и когда...

А каждый раз перепрописывать её - лишнее...

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
отсылка нескольких кук
« Ответ #11 : 30 Октября 2004, 22:39:14 »
Цитировать
Green Kakadu:
по-моему RomikChef прав, когда сказал что плевать тебе надо на то, что делает какая-то там программа, пусть даже и IE ,главное чтоб работало..  это позиция сервера, а остальное проблема клиета
Согласен. Только из-за такого странного поведения ИЕ я был не уверен насчёт того, всё ли правильно делаю я сам. Может быть, это я его вынуждаю так некорректно работать.
К тому же RomikChef написал, что я сам не понимаю, что хочу, и сравнил это с полётом на Луну ;), поэтому остальные его рекомендации я не посчитал конструктивными.
Цитировать
Phoinix:
Вообще IMHO закидывать в куку что-то кроме first_session - не зачем,
Храниш этот уникальный ID в базе, и определяешь его либо гостем либо пользователем, причем это определение может меняться при авторизации и наоборот... и считать можно сколько раз эта кука приходила и когда...
Я думал о таком варианте. Но в этом случае мне на каждого человека, просто один раз заглянувшего на данную страницу, надо вечно хранить параметры сессии. Зачем? С заказчиком было решено, что корзина гостя не сохраняется. Поэтому сохранение данных о нём только для идентификации с целью ведения статистики кажется нерациональным. А так... пусть кука у него хранится. ;)
Цитировать
Phoinix:
А каждый раз перепрописывать её - лишнее...
Почти согласен. Переписывать куку каждый раз следует в том случае, если надо отсчитывать её срок жизни от последнего обращения, что не очень актуально при сроке жизни 10 лет (ну а вдруг всё-таки актуально, кто знает? ;) ).
Или можно действительно как-то задать абсолютную вечность куки, а не просто ооооочень долгий срок жизни?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
отсылка нескольких кук
« Ответ #12 : 31 Октября 2004, 14:04:49 »
После диалога
- где гарантия, что она мне вернёт актуальную?
- в RFC
- В RFC есть критерий фантастического имени?
когда человек лихо забыл, о чем спрашивал ранее, и весело ответил совсем не в тему, я счел, что продолжать беседу бессмысленно

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28