PHP-сессия имеет значение null при вызове на другой странице в сафари

У меня есть сеанс, который является нулевым при вызове из ajax-вызова в Safari.

header.php session_start(); $_SESSION['test'] = 'this is my session'; mypage.php session_start(); echo $_SESSION['test']; <-- NOT WORKING ON SAFARI 

благодаря

Работает ли он в других браузерах? Работает ли он в Safari без AJAX? Загружается ли этот сценарий из того же домена, на котором находится исходная страница?

Очевидно, что Safari имеет более консервативную политику в отношении файлов cookie, чем другие браузеры . Если все на PHP-стороне работает и работают другие браузеры, я думаю, что Safari не отправляет cookie сессии обратно на сервер.

Я столкнулся с той же проблемой, session_id () постоянно менял каждое обновление, поэтому сафари не хранили идентификатор сеанса в cookie. Добавив вручную:

setcookie('PHPSESSID', session_id(), 0, '/');

Я заработал.

Добавьте эту строку после session_start() в обоих файлах и скажите мне, является ли идентификатор сеанса одинаковым (это означает, что вы находитесь в одном сеансе).

 echo session_id(); 

это null или это "" ?

когда вы if(isset($_SESSION['test'])) возвращает ли он true?

это только сафари? если это так, ваши настройки браузера.

Сохраняется ли ваш cookie сеанса успешно, и вы можете прочитать, что $ _session ['test'] на остальной странице header.php?

вы вызываете session_start () в самом начале страницы?

вы получаете какие-либо ошибки? если нет – вы дефло получили их включен?