Crossdomain sessions in php, использование?

Всем привет! Я делаю приложение для Android которое общается с php сайтом через JavaScript. Так получилось что надо сделать работу с сессиями на устройстве, пытаюсь сделать через $.ajax, но он не передает Session, для этого пригодилась простая проверка:
if ($_SESSION['name']){echo "true";}else{echo"false";}

Выдает false, хотя на сервере у пользователя выполнен вход.

Подскажите как осуществить кроссдоменный обмен сессиями?
  • Вопрос задан
  • 2864 просмотра
Пригласить эксперта
Ответы на вопрос 1
shaks
@shaks
Я так и не понял причем тут кроссдоменность.
Кроссдоменный обмен сессиями это когда на сайте A нужно работать с сессией сайта Б (яркий пример чтоб не терялась сессия между www.domain.com и domain.com).
Вы же спрашиваете, почему приложение, обращающееся на сервер не получает сессию.
Чтобы ответить нужно для начала понять что такое сессия. В двух словах это: файлик (или запись в БД зависит от типа хранения сессии), который находится на стороне сервера, и в котором хранится информация о посетителе. Идентификатор сессии (session_id) устанавливается посетителю как cookies. Т.е. по факту сессия это cookie имя которой по умолчанию PHPSSID если я правильно помню, а значение - идентификатор сессии.
Таким образом, получая в кукисах идентификатор сессии, сервер ищет файлик у себя, и если находит то данные сессии пишет в $_SESSION.

Ваше приложение поддерживает cookie ?

Также убедитесь в том что на стороне сервера сессия устанавливается. Проверьте наличие session_start() и просмотрите заголовки которые отдает сервер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы