Поддержание переменных сеанса в субдоменах

Я пытался поддерживать переменные сеанса между двумя поддоменами и нашел это невозможно. В итоге я создал две минимальные веб-страницы PHP в качестве тестового стенда, одна из которых я называю «тест 1» просто устанавливает

$_SESSION['test'] = "Fred";

и имеет гиперссылку на «тест 2», которая просто пытается повторить значение $ _SESSION ['test'] чтобы доказать, что это сработало, или нет. Я помещаю «тест 1» в свой домен www и «тест 2» в свой поддомен. Пробую разные версии того, что должно быть в шапке, из разных источников. Вот основные 3 (и, конечно же, их варианты):

ini_set('session.cookie_domain',substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));
session_start();

или

ini_set('session.cookie_domain','mydomain.com');
session_start();

, или

ini_set('session.cookie_domain', PHP_INI_ALL);
session_start();

, или

session_set_cookie_params(0, "/", ".mydomain.com", false);
session_start();

Я считаю, что во всех случаях получаю одинаковый результат. Сеанс не переносится между субдоменами, и page test 2 не знает, какое значение я установил для $ _SESSION ['test']. Тем не менее, похоже, что в сети есть большая уверенность в том, что один из вышеперечисленных методов должен работать.Есть идеи, что может происходить, тем более, что я использую минимальные страницы для тестирования механизма (никаких побочных эффектов, которые я не вижу)? Кстати, я нахожусь на общем сервере, если это уместно.

Спасибо за ваши мысли. Откровенный.

Редактировать . Я исправил. Проблема была вызвана Сухосином. См. Подробный ответ внизу этой страницы.

5
задан Frankie 20 February 2012 в 01:21
поделиться