清除cookie时PHP会话变量消失了

时间:2012-04-06 21:29:55

标签: php session cookies

我一直在互联网上进行大量关于会话和cookie的研究,而且我一直遇到的会话论点是,如果cookie被禁用,它将不会影响会话。

但是,每次清晰的cookie我的会话变量似乎也清楚了。另外,我已经在一些网站上看到会话实际上应该用cookies清楚。

有人可以向我解释一下吗?

5 个答案:

答案 0 :(得分:5)

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

如果你杀了你的cookie并且没有进行任何查询字符串调整,那么php会忘记你是谁!

但可以http://de2.php.net/manual/en/session.configuration.php#ini.session.use-cookies

禁用Cookie使用情况

答案 1 :(得分:0)

你错了。会话取决于cookie。当您请求页面时,会将包含您的会话UID的cookie发送到服务器。所以清除cookie会导致会话丢失。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

这是一篇很好的文章,它清除了PHP会话背后的任何谜团:

http://justinmccormick.com/wp/programming/php-sessions-explained

答案 4 :(得分:0)

如果您清除会话已经消失,PHP会默认将会话ID存储在cookie中。

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