session
变量的范围是什么$_SESSION['']
?如果我有一堆网页调查串在一起,一个接一个,会session variable
在一定时间后过期还是只要你不关闭浏览器就会存在?如果你让你的电脑休眠会发生什么?
休眠后我似乎丢失了一个会话变量,我不确定这是问题所在还是还有其他问题。
session
变量的范围是什么$_SESSION['']
?如果我有一堆网页调查串在一起,一个接一个,会session variable
在一定时间后过期还是只要你不关闭浏览器就会存在?如果你让你的电脑休眠会发生什么?
休眠后我似乎丢失了一个会话变量,我不确定这是问题所在还是还有其他问题。
由于多种原因,整个会话(不仅仅是单个变量)可能会继续或丢失。
在默认配置中,会话意味着在浏览器关闭时“丢失”,因为浏览器将删除标识会话的 cookie。它仍然在服务器上的某个地方,直到会话垃圾收集将其删除。因此,长时间闲置的浏览器可能仍然会丢失它的会话,因为 PHP 会删除最近未使用的浏览器。
检查配置。特别是,如果您需要延长会话时间,您可能需要根据需要调整“session.gc_maxlifetime”和“session.cookie_lifetime”。
会话变量不会过期。会话到期受制于session_gc.maxlifetime
和其他配置选项。
会话与浏览器无关。但是,浏览器可能会选择不向服务器发送所需的信息,以便服务器恢复较早的会话。这通常发生在浏览器将所有 cookie 视为会话 cookie 时。
在此上下文中,术语会话 cookie并不意味着包含会话标识符或会话变量的 cookie。相反,它是一个 cookie,一旦浏览器关闭(即浏览器前面的用户会话结束),它就会消失。
取决于:
0
应该意味着“直到浏览器关闭”,但 firefox / mozilla 倾向于将其(由于它们的“恢复会话”功能)视为“永远”(恕我直言,这是一个安全问题,因此您应该重新生成您的 id收到一个空的会话数组)。所以:用户代理依赖。session.gc_maxlifetime
设置由于另一个服务器范围的设置而被忽略,这可能会造成严重破坏。因此,换句话说,如果您的 UA 决定保留 cookie,并且没有进程决定删除数据,您的会话仍然存在。这需要您了解 UA 和服务器的设置。