PHP. Сессии в БД. Кроссдоменная авторизация. Что-то я в этой жизни не понимаю?
Сессии хранятся в БД. Авторизация общая на 2 сайта(2 домена, сайты лежат рядом на одном сервере). Когда юзер авторизуется на одном сайте, происходит редирект на второй, где для session_name() прописывается та же величина, что и на первом сайте (в куках). Таблица с сессионными данными общая для 2х сайтов.
На старом хостинге все работало норм, на новом — пока нет.
Описание проблемы —
Я авторизовался с одного сайта. Захожу на второй, из базы извлекаются данные(фунция read), тут все норм. Но — сразу после session_start(), делаю print_r($_SESSION) и вижу пустой массив. Т.е. строку отдал, получил — … ничего не получил. Так происходит только с данными записанными на одном сайте, которые я пытаюсь прочитать на другом.
Что нашел — данные на старом хостинге писались в виде сериализованного масссива. Здесь же — 'rJFJvf6LVaiQoSWdAHmIFSu5Zfx-393AnbN81sd2B5jmEeWlhKYJB_E9Lv93BjVw'. Может быть в этом дело.
session.serialize_handler = php на обоих хостингах
Похоже, что php собран с модулем повышения безопасности, типа Suhosin, который шифрует данные сессии. И ключ шифрования зависит от домена. Попробуйте отключить все лишние модули.