Обнуляется $_SESSION при переходе по поддоменам

evsirk

Новичок
Обнуляется $_SESSION при переходе по поддоменам

Всем добрый день!
Сделал сквозную авторизацию для всех поддоменов на сайте, всё замечательно работало, пока не обновил PHP на сервере до 5.3.1 (было 5.2.8)

И, появилась следующая проблема: сессия создается, создается кука для всего домена. При авторизации в сессию записываются некие переменные, на домене ogirk.ru. Непосредственно на этом домене, при переходе по различным страницам сессия работает как и должна.

Однако же при переходе на один из подразделов, например blogs.ogirk.ru $_SESSION становится равным $_SESSION = Array (), т.е. пустому массиву. session_id из куки читается правильно, т.е. сессия работает с тем же физическим файлом - проверял путем его просмотра на сервере. Только почему-то при смене поддомена весь массив $_SESSION обнуляется.
Интересно, что при работе с сессией внутри поддомена в нее благополучно записываются и изменяются переменные. При переходе же опять на другой поддомен или на головной ogirk.ru - массив опять благополучно обнуляется.
Просидел сегодня с этой проблемой весь день, всё поперепробовал - так и не понял в чем проблема.

Привожу код, с помощью которого я всё это дело мучаю сейчас:
Код:

PHP:
<?php 
 session_save_path('/srv/www/ogirk.ru/_sessions'); 
 session_set_cookie_params(0, '/', '.ogirk.ru'); 
 session_start(); 
 $_SESSION['aa'] = $_SESSION['aa'] + 1; 
?>

Этот кусок присоединяется к каждому файлу на всех поддоменах (в том числе и главном).
По-идее, $_SESSION['aa'] должна плюсоваться на всех поддоменах. В принципе, она так и делает, только когда переходишь на другой - переменная сбрасывается и начинается с нуля процесс.
Еще раз повторю, что session_id везде пишется одинаковый.

Очень надеюсь на вашу помощь, не знаю куда уже суваться...

Я уже думал, что возможно данные сессии не отсылаются и следовательно постоянно сессия заново заводится. Но в пределах своего поддомена все работает тем не менее. Плюс, посмотрел заголовки, которыми браузер обменивается с сервером - посылает он куки нормально. Да и если бы не посылал - другой session_id заводился бы постоянно.
А самое интересное, что раньше всё работало... Пока не обновил сервер...
 

evsirk

Новичок
да, конечно. сессия устанавливается и браузер отвечает. id совпадают. id везде одинаковый, на всех поддоменах. Т.е. кука устанавливается для всего домена. И внутри каждого сессия работает нормально.

Самое интересно, что код не менял - всё работало раньше. Обновил php до 5.3 - может что-то в файле конфигурации не так стало, но я не знаю в какую сторону смотреть даже - все пересмотрел, ничего необычного нет.
 

dimagolov

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

evsirk

Новичок
session.save_path в коде прямо задается.
Я проверял данные непосредственно просматривая файл - они именно обнуляются, т.е. изменяется содержимое файла, причем имя файла не меняется.

Заголовки все отсылаются браузеру и отправляются обратно.

-~{}~ 10.12.09 23:37:

suhosin.session.encrypt On

-~{}~ 10.12.09 23:44:

suhosin.session.encrypt установил в Off - проблема не решилась
 

evsirk

Новичок
Кстати! Когда переходишь на другой поддомен - сервер не отправляет set-cookie. Он отправляет только единожды, если очистить все куки и будет заводиться новая сессия.
Но, браузер продолжает исправно отдавать PHPSESSID с тем же id при переходе на другой поддомен.

Только данные из сессии стираются - это видно, даже если посмотреть физический файл сессии.

-~{}~ 11.12.09 00:09:

О, чудо! Выключил сухосину - и всё стало нормально работать!
Теперь интересно бы разобраться, чем она так мешала...
 

dimagolov

Новичок
дык, сухосин редкостный глюкогон. а тут еще новая версия php, так что новые баги полезли у него.
 

evsirk

Новичок
Спасибо большое за помощь!

Значит, пока оставлю так, как есть, с с выключенным сухосином - ничего же страшного не должно произойти?
 

dimagolov

Новичок
ничего же страшного не должно произойти
да ты что? конечно произойдет!!! придут злобные хакеры и украдут все деньги с твоего сайта :)

-~{}~ 10.12.09 12:20:

ты бы вместо задавания таких вопросов рассказал ЗАЧЕМ тебе сухосин. если ты этого сделать не можешь, то 100% что он тебе не нужен.
 

evsirk

Новичок
А я правда не знаю :)
Принимал сервер когда - он уже стоял, всё работало и я как-то не обращал внимания :)
 

Фанат

oncle terrible
Команда форума
а он не спрашивает
ставишь из портов во фре, запускаешь пхпинфо - вот он, родимый
 

флоппик

promotor fidei
Команда форума
Партнер клуба
ставишь из портов во фре, запускаешь пхпинфо - вот он, родимый
дебиан/убунта - та же фигня. И даже не выковыряешь его по быстрому, он в депенденсах сидит хорошо
 
Сверху