На локальном хосте есть домен (kohana) и пару сабдоменов(en.kohana и lt.kohana).
Дело в том, что при выставлении куков они сохраняются только конкретном сабдомене, на других сабдоменах их нет. Из-за этого не работает система авторизации - на каждом сабдомене надо заходить заново.
Пробовал делать так:
setcookie('text', 'test', time()+3600*24, '/', '.kohana');
Все равно куки сохраняются только на текущем домене/субдомене. В чем тут может быть причина?
Спустя 1 минута, 18 секунд (24.01.2012 - 00:13) caballero написал(а):
Цитата |
Все равно куки сохраняются только на текущем домене/субдомене. В чем тут может быть причина? |
в том что куки так работают
Спустя 16 минут, 18 секунд (24.01.2012 - 00:30) redreem написал(а):
при авторизации на одном из доменов-субдоменов отправляй "уведомление" остальным доменам-субдоменам об авторизации. хотябы путем "принудительной" авторизации штатными средствами каждого домена-субдомена.
Спустя 49 секунд (24.01.2012 - 00:31) gidrosoldat написал(а):
Зачем тогда 5 параметр?
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
domain
The domain that the cookie is available to. Setting the domain to 'www.example.com' will make the cookie available in the www subdomain and higher subdomains. Cookies available to a lower domain, such as 'example.com' will be available to higher subdomains, such as 'www.example.com'. Older browsers still implementing the deprecated » RFC 2109 may require a leading . to match all subdomains.
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
domain
The domain that the cookie is available to. Setting the domain to 'www.example.com' will make the cookie available in the www subdomain and higher subdomains. Cookies available to a lower domain, such as 'example.com' will be available to higher subdomains, such as 'www.example.com'. Older browsers still implementing the deprecated » RFC 2109 may require a leading . to match all subdomains.
Спустя 3 минуты, 24 секунды (24.01.2012 - 00:34) redreem написал(а):
он используется когда надо установить куки для внутренних страниц сайта. на "верх" он не работает.
т.е. можно например установить индивидуальные куки для адреса site.ru/page
т.е. можно например установить индивидуальные куки для адреса site.ru/page
Спустя 13 минут, 5 секунд (24.01.2012 - 00:47) gidrosoldat написал(а):
Цитата (redreem @ 23.01.2012 - 21:30) |
при авторизации на одном из доменов-субдоменов отправляй "уведомление" остальным доменам-субдоменам об авторизации. хотябы путем "принудительной" авторизации штатными средствами каждого домена-субдомена. |
Можно поподробнее с этого момента? Что может быть таким междоменным уведомлением?
У меня нету никаких принудительных путей авторизации. Можно пример?
Спустя 4 минуты, 34 секунды (24.01.2012 - 00:52) redreem написал(а):
на каждом субдомене у тебя отдельный движок работает?
если да - то видимо есть адрес с обработчиком, например login.php, который и производит авторизацию и ставит куки.
если это так, то в каждый login.php нужно просто добавить вызов этих же самых login с нужными параметрами для всех остальных поддоменов.
если да - то видимо есть адрес с обработчиком, например login.php, который и производит авторизацию и ставит куки.
если это так, то в каждый login.php нужно просто добавить вызов этих же самых login с нужными параметрами для всех остальных поддоменов.
Спустя 34 секунды (24.01.2012 - 00:52) redreem написал(а):
кхе... стоп... загнался
Спустя 3 минуты, 55 секунд (24.01.2012 - 00:56) redreem написал(а):
просто не получится. нужно отсылать для login остстальных доменов просто инфу, что произошла авторизаци. а каждый субдомен должен уже как-то зафиксировать этот факт. вариант видимо только в базе поставить флаг, что юзер авторизировался. ибо ни сессии, ни куки ни прочие клиент-серверные общности тут не подойдут. при входе на поддомен надо как-то еще умудриться передать же насчет какого юзера идет речь... мля... короче самое простое тут как мне видится настроить поддомены для работы с одной базой. чтобы факт авторизации и проверки факта авторизации шел через одну базу.
Спустя 6 минут, 40 секунд (24.01.2012 - 01:03) gidrosoldat написал(а):
Все домены на одном движке (kohana framework), сабдомены просто передают языковой параметр. По нему настривается язык отображения и делается выборка из БД.
Спустя 2 минуты, 50 секунд (24.01.2012 - 01:06) gidrosoldat написал(а):
По идее хватило бы установить одинаковые куки для всех сабдоменов, а при выходе их все снимать.
Спустя 25 минут, 21 секунда (24.01.2012 - 01:31) killer8080 написал(а):
Цитата (gidrosoldat @ 24.01.2012 - 00:06) |
По идее хватило бы установить одинаковые куки для всех сабдоменов, а при выходе их все снимать. |
так и есть, установи правильно параметр домен у setcookie(), и кука установленная на одном, будет доступна на другом.
Спустя 14 минут, 35 секунд (24.01.2012 - 01:45) gidrosoldat написал(а):
Домены kohana, en.kohana и lt.kohana
Где тут ошибка?
Может в настройках php и apache покапаться надо?
setcookie('text', 'test', time()+3600*24, '/', '.kohana');
Где тут ошибка?
Может в настройках php и apache покапаться надо?
Спустя 4 минуты, 36 секунд (24.01.2012 - 01:50) killer8080 написал(а):
Цитата (gidrosoldat @ 24.01.2012 - 00:45) |
Где тут ошибка? |
В уровнях, не существует домена kohana, для php это домен первого уровня, как .com .ru и т.п.
Соответственно субдоменом считается то, что не ниже 3-го уровня. Сделай так
kohana.local, en.kohana.local и lt.kohana.local
А в setcookie указывай домен .kohana.local
Спустя 7 часов, 13 минут, 27 секунд (24.01.2012 - 09:04) Guest написал(а):
killer8080, +1, так и вышло. Вообще странно, что в мануле об этом не слова нету.
Спустя 3 часа, 19 минут, 41 секунда (24.01.2012 - 12:23) killer8080 написал(а):
Цитата (Guest @ 24.01.2012 - 08:04) |
Вообще странно, что в мануле об этом не слова нету. |
Нет ничего странного. Домен первого уровня не может быть доменом хоста в интернете. Что бы было если вместо .kohana, указал бы доменом куки .ru? Не может же он выставить куки всем доменам рунета
Спустя 43 минуты, 5 секунд (24.01.2012 - 13:06) neadekvat написал(а):
gidrosoldat, я так понял, ты работаешь на локальном сервере. Советую тебе создавать домены общепринятого вида, т.к. скрипты надо затачивать на работу с таким адресом.
Спустя 1 час, 1 минута, 16 секунд (24.01.2012 - 14:08) gidrosoldat написал(а):
neadekvat, добавил всем доменам .loc
Вообще до этого момента с кукисами никаких проблем не возникало.
Вообще до этого момента с кукисами никаких проблем не возникало.
Спустя 5 минут, 28 секунд (24.01.2012 - 14:13) neadekvat написал(а):
Цитата (gidrosoldat @ 24.01.2012 - 15:08) |
Вообще до этого момента с кукисами никаких проблем не возникало. |
Тут могут быть затырки не только с кукисами.
Спустя 2 минуты, 24 секунды (24.01.2012 - 14:15) killer8080 написал(а):
Цитата (gidrosoldat @ 24.01.2012 - 13:08) |
Вообще до этого момента с кукисами никаких проблем не возникало. |
потому что домен не указывал