2014-09-23 62 views
0

我想知道PHP会话存储在服务器内存多长时间。如果用户登录(在服务器中设置会话变量),并且他让浏览器长时间保持打开状态,假设30天,并在第31天重新加载页面? Ca浏览器访问会话变量(浏览器仍然有会话cookie)?php会话在服务器中存储多久?

+0

已设置它是可配置的。请参阅http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php – folkol 2014-09-23 15:57:26

+0

HTTP连接不是有状态的。他们打开连接,获取一些文件,然后关闭它。服务器不知道在这30天内浏览器发生了什么。 – DanFromGermany 2014-09-23 15:57:35

回答

5

默认php.ini将会话过期时间设置为30分钟。

查阅这些设置:的session.gc_maxlifetime和session.cookie_lifetime

只要有浏览器存储cookie的,它不会,如果它被关闭或打开时事。

如果你想存储可以说,30天的会话,你可以添加:

ini_set('session.gc_maxlifetime', 30*24*60*60); 
ini_set('session.cookie_lifetime', 30*24*60*60); 
+0

谢谢您的回答。我还有一个疑问,即如果浏览器在30分钟后使用会话cookie发送请求以访问会话变量会怎么样?我很困惑。 – user3370495 2014-09-23 16:14:41

+0

@ user3370495会话由服务器管理。因此,一旦会话过期,服务器将不再识别cookie,即使用户仍然拥有它。 – 2014-09-23 16:18:27

+0

在cookie_lifetime期间(可以说30分钟)之后,cookie将过期,浏览器将自动删除它,这意味着会话数据将丢失。或者,当gc_maxlifetime到期时,垃圾收集器应该从服务器中删除会话信息。 – 2014-09-23 16:20:13

0

通常你会代码为您的会话处理代码部分的函数一段时间之后到期会议,所以在这种情况下,我就不会不管多久,他们离开了那里浏览器中打开