Сессия PHP совместно с субдоменом

Я прочитал много форумов (включая этот) о передаче переменных сеанса между субдоменами, и я не могу заставить это работать. Может ли кто-нибудь объяснить, что мне не хватает?

Шаг 1 В файле php.ini: session.cookie_domain = ".mydomain.com" Проверено с помощью phpinfo (), что я использую правильный файл php.ini

Шаг 2 На странице www.mydomain.com установите переменную сеанса $ _SESSION ['a'], убедитесь, что она отображается, вызывая ее на следующей странице (она делает). Ссылка Clink на sub.mydomain.com

Шаг 3 Страница на sub.mydomain.com проверяет, установлена ​​ли переменная сеанса, используя:

$ a = $ _SESSION ['a']; if (! isset ($ _ SESSION ['a'])) {echo "Ошибка: переменная сеанса недоступна"; }

К сожалению, я получаю сообщение об ошибке. Что мне не хватает? Заранее спасибо за помощь.

Итак, я пошел в другом направлении и использовал эту запись, которая работала …

session_set_cookie_params (0, '/', '.mydomain.com'); session_start ();

Вы должны передать идентификатор сеанса в качестве файла cookie и установить тот же идентификатор сеанса в новом домене

Например, вы можете использовать этот код

ini_set('session.cookie_domain', '.example.com'); $currentCookieParams = session_get_cookie_params(); $rootDomain = '.example.com'; session_set_cookie_params( $currentCookieParams["lifetime"], $currentCookieParams["path"], $rootDomain, $currentCookieParams["secure"], $currentCookieParams["httponly"] ); if(!empty($_SESSION)){ $cookieName = session_id(); setcookie('PHPSESSID', $cookieName, time() + 3600, '/', $rootDomain); } if(isset($_COOKIE['PHPSESSID'])){ session_name($_COOKIE['PHPSESSID']); } 

отладки.
это то, чего вам не хватает.

в первую очередь вам нужно посмотреть заголовки HTTP, чтобы узнать, что происходит, и какие файлы cookie фактически установлены. Вы можете использовать аддон LiveHTTPHeaders Firefox или что-то еще. С такой информацией вы можете найти проблему. Без него никто не может ответить на вопрос на тур «мои сеансы не работают»

Он может подтвердить ваше утверждение о правильной настройке домена в настройках сеанса. Или опровергнуть это.
Это может показать некоторые другие неправильные настройки.
Это может показать, что cookie отправляется обратно браузером – так что вы можете быть уверены, что это проблема на стороне сервера

Всегда видеть фактический результат вашего кода (вместо угадывания, основанного на косвенных последствиях).