PHP читает cookie, который находится в другом домене - PullRequest
5 голосов
/ 27 мая 2010

У меня есть два домена. Один домен содержит скрипт входа в систему. При входе в систему создается файл cookie. У другого домена есть укороченный URL.

Итак, во 2-м домене, в котором есть скрипт URL Shortener, есть файл session.php. Обычно я использовал $_COOKIE['sessionid'], чтобы получить идентификатор сеанса и сопоставить его с помощью базы данных.

Как я могу получить идентификатор сессии сейчас? Я пробовал несколько способов, но ни один из них не решил мою проблему.

Ответы [ 6 ]

14 голосов
/ 27 мая 2010

По очевидным причинам безопасности вы не можете прочитать cookie, принадлежащий другому домену. Вы можете сделать это через поддоменов.

Почему бы не добавить идентификатор сеанса к перенаправленному URL?

4 голосов
/ 27 мая 2010

Рассматривали ли вы использование единого входа?

http://www.jasig.org/cas

http://en.wikipedia.org/wiki/Single_sign-on

Мы используем его на работе, это круто! Это означает, что нам не нужно беспокоиться о подобных проблемах.

3 голосов
/ 27 мая 2010

Файлы cookie отправляются браузером и только в домен, для которого были установлены файлы cookie.

Не так много (что означает ничего ;)) вы можете сделать.

Но если ваши домены - это два разных субдомена (например, login.yourdomain.com и shortener.yourdomain.com), вам просто нужно соответствующим образом установить имя домена, чтобы сделать cookie действительным для всех субдоменов. В этом случае это будет .yourdomain.com.

Возможно, вы захотите прочитать документацию setcookie().


Может быть, лучше, если вы четко опишите, чего хотите достичь. Вероятно, есть другое решение, которое не использует куки.

1 голос
/ 22 января 2013

Просто при настройке куки со страницы входа установить cookie для всего домена, как это

setcookie("c","value",time()*3600*24,"/");

таким образом вы можете установить cookie для всего вашего домена.

0 голосов
/ 27 мая 2010

Вы не можете. Файлы cookie привязаны к одному домену. Вы можете использовать куки-файлы в нескольких поддоменах.

0 голосов
/ 27 мая 2010

Вы не можете прочитать cookie с другого домена.
хотя есть несколько способов передать идентификатор сессии. Вы можете искать SO для cross-domain authorization

Самый простой способ - передать идентификатор сеанса через строку запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...