evsirk
Новичок
Обнуляется $_SESSION при переходе по поддоменам
Всем добрый день!
Сделал сквозную авторизацию для всех поддоменов на сайте, всё замечательно работало, пока не обновил PHP на сервере до 5.3.1 (было 5.2.8)
И, появилась следующая проблема: сессия создается, создается кука для всего домена. При авторизации в сессию записываются некие переменные, на домене ogirk.ru. Непосредственно на этом домене, при переходе по различным страницам сессия работает как и должна.
Однако же при переходе на один из подразделов, например blogs.ogirk.ru $_SESSION становится равным $_SESSION = Array (), т.е. пустому массиву. session_id из куки читается правильно, т.е. сессия работает с тем же физическим файлом - проверял путем его просмотра на сервере. Только почему-то при смене поддомена весь массив $_SESSION обнуляется.
Интересно, что при работе с сессией внутри поддомена в нее благополучно записываются и изменяются переменные. При переходе же опять на другой поддомен или на головной ogirk.ru - массив опять благополучно обнуляется.
Просидел сегодня с этой проблемой весь день, всё поперепробовал - так и не понял в чем проблема.
Привожу код, с помощью которого я всё это дело мучаю сейчас:
Код:
Этот кусок присоединяется к каждому файлу на всех поддоменах (в том числе и главном).
По-идее, $_SESSION['aa'] должна плюсоваться на всех поддоменах. В принципе, она так и делает, только когда переходишь на другой - переменная сбрасывается и начинается с нуля процесс.
Еще раз повторю, что session_id везде пишется одинаковый.
Очень надеюсь на вашу помощь, не знаю куда уже суваться...
Я уже думал, что возможно данные сессии не отсылаются и следовательно постоянно сессия заново заводится. Но в пределах своего поддомена все работает тем не менее. Плюс, посмотрел заголовки, которыми браузер обменивается с сервером - посылает он куки нормально. Да и если бы не посылал - другой session_id заводился бы постоянно.
А самое интересное, что раньше всё работало... Пока не обновил сервер...
Всем добрый день!
Сделал сквозную авторизацию для всех поддоменов на сайте, всё замечательно работало, пока не обновил 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 заводился бы постоянно.
А самое интересное, что раньше всё работало... Пока не обновил сервер...