Передача PHPSESSID между доменом и поддоменами

Гриша К.

Новичок
Андрейка, что-то я вас непойму,

Зайдя на эту страницу: http://blog.vertebral-column.com/demo.php
запускается сессия, соответсвенно определяется $_COOKIE['PHPSESSID'],
потом перехожу на домен: http://vertebral-column.com/demo.php
если на поддомене не было setcookie('PHPSESSID', session_id(), 0, '/', '.vertebral-column.com'); то PHPSESSID на домен не передасться и в случае старта сессии на домене, PHPSESSID определиться своя,
а если использовать на поддомене setcookie() то на домен передастья PHPSESSID.

То что session_start() ставит куки набор это мне понятно:
суть в том, что при старте сессии на поддомене, сатвится автоматически кука для поддомена,
а я ставлю вручную куку для домена -
вот в чем получается суть-то ручной куки, исходя из пример.

session_set_cookie_params() - используется для установки параметров cookie-набора сеанса. Перечитывать не пришлось.


Фанат
блин, а почему на основном домене сессию не стартуешь?
Я понял вас, забыл на домене сделать session_start(), сейчас сделал.
В итоге при старте сессии на поддомене, на домен пердается PHPSESSID и переменная сессии, и наоборот.
Пробовал еще раз ставить session_set_cookie_params на домене, на поддомене - безрезультатно.

Пример обновил: http://blog.vertebral-column.com/demo.php
 

Фанат

oncle terrible
Команда форума
сделай ini_set с доменом
и сразу под ним - phpinfo() и смотри значение домена
 

Гриша К.

Новичок
Фанат,
пробую так:

убираю setcookie на поддомене.

На поддомене:
Ставлю ini_set с доменом, делаю phpinfo(),
или делаю просто ini_get("session.cookie_domain"),
домен в настройки сессии определяется,
перехожу на домен, ну соответвенно там ничего.

Делаю одновременно тоже самое на домене,
домен в настройки сессии определяется, понятно,
PHPSESSID не передается.

Делаю тоже самое с session_set_cookie_params(),
ставлю на поддомен,
на домене session.cookie_domain - не определена.
Делаю наоборот на домене, session.cookie_domain - на поддомене не определена.
Делаю и там и там. PHPSESSID не передается.
 

avenger_msoft

Новичок
А у меня сессия не передается, потому-что заголовок странный
Код:
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip,deflate
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Cache-Control: max-age=259200
Connection: close
Cookie: PHPSESSID=995b34ccbaf003add86dcabf72025e14; PHPSESSID=995b34ccbaf003add86dcabf72025e14
Host: blog.vertebral-column.com
Referer: [url]http://vertebral-column.com/demo.php[/url]
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0
Via: 1.1 SquidNT:3128 (squid/2.6.STABLE6-NT)
X-Forwarded-For: 192.168.130.3
X-Real-IP: 81.9.74.2
И
Код:
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip,deflate
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Cache-Control: max-age=259200
Connection: close
Cookie: PHPSESSID=da7f9396f0c1c96aa51b73298818c68b; PHPSESSID=995b34ccbaf003add86dcabf72025e14
Host: vertebral-column.com
Referer: [url]http://blog.vertebral-column.com/demo.php[/url]
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0
Via: 1.1 SquidNT:3128 (squid/2.6.STABLE6-NT)
X-Forwarded-For: 192.168.130.3
X-Real-IP: 81.9.74.2
Заголовки с двух страниц. Идентификаторы сессий разные.
 

Гриша К.

Новичок
Фанат,
я наверное вас неправильно понял,
вот сделаю я так как вы сказали, что нужно посмотреть?

avenger_msoft,
странно как-то увас выходит, пробую в разных браузерах, все в порядке. Непонимаю как такое получилось.

На поддомене в самом начале ксрипта пишу
PHP:
ini_set("session.cookie_domain", ".vertebral-column.com");
php_info();
HTTP Headers Information
HTTP Request Headers
HTTP Request GET /demo.php HTTP/1.0
Accept */*
Accept-Encoding gzip, deflate
Accept-Language ru
Connection close
Cookie
Host blog.vertebral-column.com
If-Modified-Since Thu, 25 Jan 2007 21:15:58 GMT; length=49547
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
X-Real-IP ****
HTTP Response Headers
X-Powered-By PHP/4.4.4
Set-Cookie PHPSESSID=d9f01f8cb2738e99cb0ee4e78153faef; path=/
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Обновляю страницу

HTTP Headers Information
HTTP Request GET /demo.php HTTP/1.0
Accept */*
Accept-Encoding gzip, deflate
Accept-Language ru
Connection close
Cookie PHPSESSID=d9f01f8cb2738e99cb0ee4e78153faef; PHPSESSID=d9f01f8cb2738e99cb0ee4e78153faef
Host blog.vertebral-column.com
If-Modified-Since Thu, 25 Jan 2007 21:18:10 GMT; length=48435
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
X-Real-IP ****
HTTP Response Headers
X-Powered-By PHP/4.4.4
Expires Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Connection close
Content-Type text/html; charset=utf-8
Content-Encoding gzip
Last-Modified Thu, 25 Jan 2007 21:18:51 GMT
 

avenger_msoft

Новичок
avenger_msoft,
странно как-то увас выходит, пробую в разных браузерах, все в порядке. Непонимаю как такое получилось.
Открываю в первом окне http://vertebral-column.com/demo.php. Далее открываю второе окно с http://vertebral-column.com/demo.php.
Перехожу во втором окне по ссылкам и вижу такие заголовки.
 

Гриша К.

Новичок
avenger_msoft,
открываю окно http://vertebral-column.com/demo.php,
в нем нажимаю на ссылку http://vertebral-column.com/demo.php,
возвращаюсь обратно, вижу одинакоые PHPSESSID.
У вас Firefox, попробую скачать его, и внем попробовать.

Попробовал сделать именно так как вы сказали в Mozilla Firefox, т.е. с домена на поддомен, заголовки действительно такие.
Попробовал с поддомена на домен, тогда все впорядке.
Щас попробую что-нибудь.
 

avenger_msoft

Новичок
Автор оригинала: Гриша К.
avenger_msoft,
открываю окно http://vertebral-column.com/demo.php,
в нем нажимаю на ссылку http://vertebral-column.com/demo.php,
возвращаюсь обратно, вижу одинакоые PHPSESSID.
У вас Firefox, попробую скачать его, и внем попробовать.
Я же сказал, открываем первое окно http://vertebral-column.com/demo.php. Забыли про первое окно, но оно есть. Открываю второе окно с http://vertebral-column.com/demo.php. В нем перемещаюсь (несколько раз) по ссылкам (не обновление) и вижу такой результат.

P.S. Я открывал два браузера.
 

Фанат

oncle terrible
Команда форума
Гриша К.
чтобы всё работало, сервер доложен посылать куку с доменом. правильно?
Значит, выясняя все тонкости, надо не смотреть на сессию, которая является десятым следствием, а ПРИЧИНУ - заголовок, который посылает сервер.
есть ли в параметрах куки домен.

-~{}~ 26.01.07 00:40:

avenger_msoft
Забыли про первое окно
а зачем его открывать, если потом про него забывать?
 

Гриша К.

Новичок
avenger_msoft, сейчас я в скрипте на основном домене сделал все тоже самое, что в скрипте на поддомене,
т.е. использую setcookie.
Попробовал в MozillaFirefox, в IE, в OPERA - PHPSESSID передается, и с домена на поддомен, и наоборото.
Попробуйте еще раз сами, если вдруг неполучится напишите пожалуйста.
 

Гриша К.

Новичок
Фанат, спасибо за ответ.

есть ли в параметрах куки домен.
Если вы имеет ввиду,
session.cookie_domain = .vertebral-column.com?
Есть, когда указывается ini_set:
PHP:
session_start();
ini_set( 'session.cookie_domain', '.vertebral-column.com');
phpinfo();
 

Гриша К.

Новичок
avenger_msoft, спасибо что посмотрели и ответили.
FIREFOX наверное любит только "ручные куки".
 

Фанат

oncle terrible
Команда форума
о господи.

кука - это НТТР ЗАГОЛОВОК
и ничего больше.
это строчка в НТТР заголовках. и только её я и имею в виду
вот на неё и надо смотреть!
чтобы потом не сидеть, тыкать пальцем в небо, рассуждая об отношении браузеров в кукам!
 

Гриша К.

Новичок
Фанат, что-то я запутался,
в phpinfo() Это имеется ввиду таблица HTTP Headers Information?
Ее я привел выше http://phpclub.ru/talk/showthread.php?postid=688698#post688698
или всетаки не то?

Сначала Cookie - пустое,
после обновления страницы Cookie принимает значение.
Получается что кука передается.
 

Фанат

oncle terrible
Команда форума
в phpinfo() имеется в виду настройка session.cookie_domain
после обновления страницы Cookie принимает значение.
Получается что кука передается.
я щас обнусь.

вопрос не в том, что кука передаётся! а КАКАЯ кука передаётся! есть в ней домен, или нету!
 

Гриша К.

Новичок
Фанат,
никак непойму,
как посмотреть есть ли в куке домен,
в cookie: только PHPSESSID,
В session.cookie_domain, если указано в ini_set, то домен будет, иначе нет.
Поясните пожалуйста для меня, непонимающего, конкретно где в PHPINFO я могу увидеть передается в куке домен или нет.
 

Андрейка

Senior pomidor developer
Гриша К.
Спасибо за вопрос.
что-то я вас непойму
дык оно и видно.. русский не родной? или вы просто любите отвечать на вопрос "когда" ответом "где"?

давайте так - следующим постом вы пишите минимально возможный код, начинающийся с <?php и выполняющий (согласно мануалу, который вам перечитывать не надо) следующее - стартующий единную сессию для всех поддоменов vertebral-column.com и записывающий в переменную сессии test значение 233. больше в посте ничего писать не надо, спасибо, пожалуйста, янепонял - в другой раз.. сможете? я в вас верю
 
Сверху