Проблема с $ _SESSION - PullRequest
       18

Проблема с $ _SESSION

3 голосов
/ 30 мая 2011

У меня есть один веб-сервер (IIS), и в этом у меня есть две папки: website1 и website2, с двумя разными копиями одного и того же веб-приложения.Как только я войду в один из них - скажем, mylocalip/website1, я начинаю сеанс, выполняя стандартные действия:

$_SESSION["user_id"] = x;

Это прекрасно работает на моем веб-сайте.Тем не менее, если я затем перехожу на mylocalip/website2, я обнаруживаю, что все еще вошел в систему. Довольно странно, если я перехожу на mypublicip/website2, я обнаруживаю, что не вошел в систему.

Мой вопрос: почему я наблюдаю такое поведение??

Спасибо и наилучшими пожеланиями.

Ответы [ 3 ]

2 голосов
/ 30 мая 2011

Объект Session назначается доменному имени. Здесь вы используете необработанные IP-адреса, так что это становится доменным именем. Обе папки находятся под одним и тем же доменным именем, поэтому они совместно используют объект Session.

Однако, когда вы переходите на общедоступный IP-адрес, файл cookie сеанса для другого IP-адреса недействителен, поэтому вам необходимо снова войти в систему.

2 голосов
/ 30 мая 2011

Сессии извлекаются PHP с помощью кучи. Coockie связан с хостом или подпапкой этого хоста.

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

1 голос
/ 30 мая 2011

Попробуйте использовать session_set_cookie () и установите для параметра path значение /website1.

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