Проблема с использованием сессии в другом поддомене - PullRequest
0 голосов
/ 11 августа 2010

Мне нужно использовать один и тот же сеанс в разных поддоменах.

Сначала я помещаю

php_value session.cookie_domain ".aaaa.com"

в файл .htaccess и загружаю его в корневой каталог.

приМне нужно использовать сеансы.Я просто звоню

session_start();

Иногда это работает, но иногда нет.

Я проверил это и обнаружил, что

  1. Если я пойдудля входа на страницу в первый раз, затем войдите и перейдите на страницу поддоменов.Это работает!

  2. Если я захожу на страницу субдомена и нажимаю, чтобы перейти на страницу входа и вернуться на страницу субдомена с помощью javascript window.location = 'http://sub.aaaa.com';, это не работает!!

  3. Если я войду в 2 веб-браузера с той же учетной записью, он не будет работать !!

Есть ли другой способ?Или как мне решить эту проблему.Я хочу, чтобы мой сайт использовал один логин.

Ответы [ 2 ]

0 голосов
/ 11 августа 2010

Чтобы устранить проблему # 2, используйте монитор HTTP, такой как HTTPFox , чтобы просматривать заголовки, поступающие на сервер или с него, когда вы входите в систему и просматриваете веб-страницы, убедитесь, что файл cookie правильно установлен с правильный домен и ограничения пути.

Пробм № 3 - Я не уверен, к чему ты клонишь. Вы используете два отдельных браузера (скажем, Firefox и Chrome?), Или вы имеете в виду, что вы используете два окна / вкладки одного и того же браузера? Во-первых, два разных браузера не будут обмениваться файлами cookie, поэтому вы не можете обмениваться между ними одним сеансом без некоторых хаков для ручной передачи файлов cookie между ними.

Что касается двух разных вкладок / окон одного и того же браузера, такая реализация зависит от вашей логики входа в систему. Если скрипт входа в систему запускает новый сеанс безоговорочно, то при второй попытке входа в систему вы получите полностью отдельный сеанс от первого входа в систему и, скорее всего, также перезапишете cookie первого входа в систему.

0 голосов
/ 11 августа 2010
  1. Убедитесь, что у вас session_start() на каждой странице, которую вы используете, включая те, которые могут быть невидимы для пользователя.

  2. Если вы используете два веб-браузера, сеансы независимы друг от друга, и это сделано специально.

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