Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cookies в поддомене www, мешают жить 
:(
    Опции темы
Stampede
Дата 12.5.2005, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: нет
Всего: 144



Допустим, у меня есть вебсайт, mysite.com

Когда юзеры заходят, я создаю у них кукисы, чтобы значить, было видно, кто есть ху. Беда, однако, в том, что некоторые посетители попадают на сайт по адресу www.mysite.com. Это мне активно не нравится, потому что возникает проблема: если потом этот же человек заходит (например, по другой ссылке) по правильному адрему, без www, то ранее установленные кукисы оказываются бесполезными.

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

Я вообще не знал об этой проблеме, пока не обнаружил из логов, что иногда имеет место быть такой сценарий: юзер делает пост, сервлет обрабатывает данные из формы и делает sendRedirect(nextpage). А по незнанию nextpage у меня был не в виде URL, а в виде путя от корня. А браузер, оказывается, пытается восполнить недостающие элементы путем добавления http://www.mysite.com.

Я тогда стал при формировании адреса для перенаправления в явном виде приписывать http://mysite.com, но тогда люди, изначально попавшие через www, стали терять куки.

И что делать? Мне видятся два принципиальных подхода:
  • Всех, кто попал через www, сразу без разговоров переадресовывать на правильный адрес.
  • Отслеживать кто как попал, и перенаправлять соответственно.
Первый решает проблему с наименьшими затратами душевных сил, по принципу раз сделал и забыл, но несет налет авторитарирности. Кроме того, непонятно, как к этому отнесутся поисковики.

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

Какие у кого будут мнения?

PM WWW   Вверх
Stampede
Дата 18.5.2005, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: нет
Всего: 144



Просьба к модераторам:

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

Спасибо.

PM WWW   Вверх
batigoal
Дата 18.5.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Есть специальный раздел по веб-технологиям:
http://forum.vingrad.ru/index.php?showforum=18


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Stampede
Дата 18.5.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: нет
Всего: 144



Цитата(Lamer @ 18.5.2005, 18:19)
Есть специальный раздел по веб-технологиям


Я знаю, но он какой-то совсем вялый. Поэтому прошу перенести именно в PHP. Впрочем, на усмотрение модераторов.

PM WWW   Вверх
IZ@TOP
Дата 18.5.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Stampede, понял вопрос. Есть несколько способов (очевидных для меня):
1 - Устанавливать кукисы для разных доменов.
Можно к примеру создать функция которая будет устанавливать переданные ей значения сразу на все домены.
2 - Редиректить с www.example.com на example.com, или наоборот - зависит от предпочтений (я бы предпочел с example.com на www.example.com).

Пока вроде других решений в голову не приходит.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 18.5.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



Бегом читать ман:
http://ee.php.net/setcookie
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
Пример 1. setcookie() send example

Код

<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?>  

Добавлено @ 19:47
IZ@TOP
всё проще smile
PM MAIL Skype   Вверх
IZ@TOP
Дата 18.5.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Opr, я догадывался ^)


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Stampede
Дата 18.5.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: нет
Всего: 144



Цитата(Opr @ 18.5.2005, 19:47)
всё проще


Да, действительно, все оказалось гораздо проще smile

Меня в свое время сбило с толку то, что при явном указании домена неочевидно, что действие куки будет распространяться и на поддомены. Так же как не явствует это из RFC 2109 (особенно если не знать правил, по которым согласно спецификации осуществляется сопоставление доменных имен):

Цитата
Domain=domain
      Optional.  The Domain attribute specifies the domain for which the
      cookie is valid.  An explicitly specified domain must always start
      with a dot.


Ну все, теперь надеюсь побороть smile Спасибо, Opr.

IZ@TOP, будь добр, как модератор влепи товарищу плюса от моего имени, а то мне пока статуса не хватвет smile

PM WWW   Вверх
batigoal
Дата 18.5.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Я влеплю - мне тоже интересно было smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
MuToGeN
Дата 30.5.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Было что-то на тему domain.com и .domain.com, второе устанавливает для всех субдоменов домена domain.com
А вот насчет установки вообще для всех существующих в инете доменов? Кто-нить сталкивался с ситуациями типа установки кукисов например для всех .com ?


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Mal Hack
Дата 30.5.2005, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(MuToGeN @ 30.5.2005, 16:34)
Было что-то на тему domain.com и .domain.com, второе устанавливает для всех субдоменов домена domain.com

На сколько я помню, таая фишка тоже не везде работает.

Цитата(MuToGeN @ 30.5.2005, 16:34)
А вот насчет установки вообще для всех существующих в инете доменов? Кто-нить сталкивался с ситуациями типа установки кукисов например для всех .com ?

Этого быть не может, иначе бы я легко переписал бы куки, или считал бы не то, что надо.
PM ICQ   Вверх
Natasha
Дата 8.8.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.8.2006

Репутация: нет
Всего: нет



Цитата
Opik
Код

<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?>  



Это я в мануале читала, но видимо не очень поняла

Цитата

domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=cit-forum.com". В этом случае значение cookie будет действительно и для домена cit-forum.com, и для www.cit-forum.com. Но не радуйтесь, указания двух последних периодов доменных имен хватает только для доменов иерархии "COM", "EDU", "NET", "ORG", "GOV", "MIL" и "INT". Для обсуждаемых сейчас новых семи доменов первого уровня ("FIRM", "SHOP", "WEB", "ARTS", "REC", "INFO", "NOM"), вероятно, это условие сохранится. Для доменов иерархии "RU", например, придется указывать три периода. 


А как быть с именами .ru?

например www.имя_сайта.ru и имя_сайта.ru
PM MAIL   Вверх
rMaveric
Дата 10.8.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



Сталкивался с сесиями на несколько собственных доменов, а точнее

mydomain.com и mydomain.org

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


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0621 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.