PHP有什么理由以绝对随机的间隔向Safari浏览器提供新的会话ID?
PHPSESSID cookie是否可以在客户端到期? 或者其他更复杂的东西?
答案 0 :(得分:3)
Safari的设置仅允许来自正在访问的网站的Cookie。如果您的数据库或Web服务位于另一个框中,它将阻止cookie,因此会话将不会保存...
答案 1 :(得分:0)
在php.ini文件中,您有配置选项
session.use_only_cookies
如果设置为true,PHP将仅使用cookie来跟踪会话。
如果浏览器禁用了cookie,则PHP有一个使用get的回退方法。
因此,如果您将此选项设置为false,如果您的Safari已禁用Cookie,则会话也会有效。
然而,这有一个安全缺陷。复制URL并将其发送给朋友的某些用户可能会使用URL复制SID字符串,从而向他们的朋友显示他们的会话。如果仅将SID存储在cookie中,则不会发生这种情况。
关于会话的持续时间,请查看 session.gc_maxlifetime 配置选项:
session.gc_maxlifetime指定 数据之后的秒数 将被视为“垃圾”并清理干净 起来。垃圾收集发生在 会议开始。
答案 2 :(得分:0)
在session_set_cookie_params(0, "/");
session_start();
反斜杠使会话在Safari中为我工作。