在safari中的其他页面中调用时,PHP会话为null

ste*_*boy 6 php safari session

我创建了一个会话,当从Safari上的ajax调用调用时,该会话为null.

header.php
session_start();
$_SESSION['test'] = 'this is my session';


mypage.php
session_start();
echo $_SESSION['test']; <-- NOT WORKING ON SAFARI
Run Code Online (Sandbox Code Playgroud)

谢谢

I.d*_*ies 5

我遇到了同样的问题,session_id()每次刷新都会改变,所以safari没有将会话id存储在cookie中。通过手动添加:

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

我成功了。


Ree*_*e45 4

它可以在其他浏览器中使用吗?它可以在没有 AJAX 的 Safari 中工作吗?该脚本是否从原始页面所在的同一域加载?

Safari 显然比其他浏览器有更保守的 cookie 政策。如果 PHP 端的一切都正常,并且其他浏览器也正常,我会认为 Safari 不会将会话 cookie 发送回服务器。