Нет решений, которые бы мне помогли, я надеялся, что кто-то внес в этот вопрос что-то новое.
Я выполняю следующие шаги:
- Я инициализирую сеанс (не файл cookie) с помощью , затем установите переменную позже в том же файле php с помощью $_SESSION['nu'] = $userName;
- Затем я перенаправляюсь на новый php с помощью window.location.href = "foo.php". Этот php-файл запускает сеанс (первым образом, как указано выше), а затем использует $_SESSION['nu']. Пока все работает нормально во всех браузерах.
- На второй странице php (той, что на шаге 2) в Chrome (бета-версия 31.0.1650.26):
- Я могу использовать $_SESSION['nu'] в php-файле, доступ к которому осуществляется через вызов AJAX.
- Если я перезагружу страницу, $_SESSION['nu'] больше не установлен. Сразу после первой загрузки он не установлен.
- Если я перейду на другую страницу, которой также требуется $_SESSION['nu'], она также не сможет получить к ней доступ.
- В Safari (5.1.9 и 5.1.7) и Firefox (24.0 и 18.0) я могу перезагрузить и перейти на другую страницу, $_SESSION['nu'] установлен и все работает нормально.
- Когда я тестирую это в своей домашней среде (MAMP 1.9.6), он отлично работает и в Chrome.
- В обоих файлах php.ini (домашнем и онлайн) session.use_only_cookies включен (локальный и главный).
Я попробовал решение favicon.ico (я поместил файл значка с именем favicon.ico в корень веб-сайта), но это ничего не изменило.
Есть предложения? Спасибо!
Обновление
- Все php-файлы, пытающиеся получить доступ к $_SESSION['nu'], находятся в корне («мой» корень, поскольку я использую веб-отель).
Глядя в консоль Chrome в «Ресурсы -> Файлы cookie», я вижу, что файлы cookie присутствуют постоянно (как Я перехожу из файла php, который запускает сеанс, в foo.php). - Что меня поражает, так это то, что он работает в FF и Safari...
Update2
Изображения из консоли. Вот что я вижу, когда нахожусь в foo.php (вторая страница):
Chrome:

Safari:

РЕШЕНИЕ (надеюсь):
Я не уверен, почему это работает сейчас, что меня не совсем устраивает, но на данный момент... Чтобы объяснить, что произошло, мне нужно дать более подробную информацию:
- index.php вызывает start_session(). Устанавливает переменную $_SESSION['nu'] = Null. Затем страница ожидает нажатия кнопки входа в систему.
- Кнопка входа имеет скрипт, который через AJAX вызывает songIn.php, который вызывает start_session() и устанавливает $_SESSION['nu'] = "bar". в функции Done() вызова AJAX скрипт вызывает window.location.href = "foo.php".
- foo.php вызывает session_start() и получает $_SESSION['nu'].
Без этих строк в index.php кажется, что он работает в Chrome. То есть значение $_SESSION['nu'] не теряется, когда пользователь перемещается по другим страницам сайта или перезагружает foo.php.
Как я уже говорил ранее, это постоянно работало в FF и Safari. Теперь и в Chrome. Буду признателен, если кто-нибудь найдет объяснение!
Подробнее здесь: https://stackoverflow.com/questions/194 ... r-browsers
Мобильная версия