清除Cookie时PHP会话变量消失

清除Cookie时PHP会话变量消失,php,session,cookies,Php,Session,Cookies,我已经在互联网上做了很多关于会话和cookie的研究,我经常遇到的会话论点是,如果禁用cookie,它不会影响会话 不过,每次清除cookies时,我的会话变量似乎也会清除。另外,我在一些网站上读到,会话实际上应该用cookies清除 有人能给我解释一下吗?你错了。会话依赖于cookie。当您请求页面时,将向服务器发送包含会话UID的cookie。因此,清除cookie将导致会话丢失。如果其可能的php将其会话id存储在cookie中。如果您的浏览器拒绝该请求,它将携带会话id和查询字符串 如果

我已经在互联网上做了很多关于会话和cookie的研究,我经常遇到的会话论点是,如果禁用cookie,它不会影响会话

不过,每次清除cookies时,我的会话变量似乎也会清除。另外,我在一些网站上读到,会话实际上应该用cookies清除


有人能给我解释一下吗?

你错了。会话依赖于cookie。当您请求页面时,将向服务器发送包含会话UID的cookie。因此,清除cookie将导致会话丢失。

如果其可能的php将其会话id存储在cookie中。如果您的浏览器拒绝该请求,它将携带会话id和查询字符串

如果你杀死了你的cookie并且没有对查询字符串进行调整,php就会忘记你是谁


但是,cookie的使用可以通过以下方式禁用:

如果需要,您可以在get中强制使用PHP SESS ID,而不是在cookie中,默认的是cookie

会话通过存储具有近期(有时甚至是负)到期日期的cookie来利用cookie。在PHP中,默认情况下可以在名称
PHPSESSID
下找到此cookie。在运行时,需要在PHP中使用
session\u start
函数来加载和关联/标识用户和关联的会话信息

由于会话是一种特殊类型的cookie,因此清除cookie(即使禁用了cookie)可能会导致会话标识符丢失,从而导致会话重置

这是一篇伟大的文章,它澄清了PHP会话背后的所有谜团:


如果清除了会话,则PHP会根据默认值将会话id存储在cookie中


您可以做的是启用。这样,PHP将会话id附加到url。(但我不建议这样做)

我尝试了您的解决方案,但仍然存在相同的问题,但当我查看您的链接时,我看到session.use\u only\u cookies在PHP 5.3.0中默认设置为1,这就解释了问题。非常感谢你!