2010-08-11 3 views
0

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

Сначала я поставил

php_value session.cookie_domain ".aaaa.com" 

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

, когда мне нужно использовать сеансы. Я просто позвоню

session_start(); 

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

Я проверил это и нашел это.

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

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

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

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

+0

Как интересно, в вашем файле .htaccess попробуйте заменить php_value session.cookie_domain ".aaaa.com" с php_value session.cookie_domain "* .aaaa.com" – SimonDowdles

+0

вы также добавили htaccess в свой поддомен ? – Codler

ответ

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

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

+0

И убедитесь, что session_start(); это место перед любым другим кодом php, который у вас может быть. – SimonDowdles

0

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

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

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

Смежные вопросы