取消设置所有会话变量 - 本地网站

时间:2017-09-21 08:47:56

标签: php

为什么我们必须在注销后取消设置所有会话变量,为什么不取消设置用于检查用户是否登录的会话变量。我问,因为我在本地主机上有4个站点,如果用户已登录在同一个浏览器中的四个站点上,当用户注销一个会话时,我会销毁会话,自动将用户注销剩余的3个,因为会话销毁会破坏所有会话。

1 个答案:

答案 0 :(得分:0)

您不应该为四个不同的网站使用相同的会话,除非您希望链接,并且所有网站同时清除,等等。

您的问题是,在开发过程中,所有网站都在一个域上,并且所有四个会话都使用相同的Cookie。

干净利落地处理这个问题的方法是使用session_name(),它允许您为每个站点提供完全不同的会话数据集,方法是为每个站点发送不同的cookie到浏览器。然后运行session_destroy()只会清除当前站点的详细信息,而不是其他三个站点。

另请注意,生产网站上几乎肯定不会出现此问题,因为每个网站都位于不同的域中,这意味着单独的Cookie,因此会分开会话。

如果你希望所有四个网站由于某种原因共享同一个会话,可以因为它们都在生产中的同一个域上运行,那么你就是是的,您可以取消设置单个变量以保存“以用户X身份登录到站点A但未登录到站点B”等状态。但是,这非常不寻常,您可能只想使用session_name(),这样即使在开发过程中您的会话也是独立的。