2011-01-28 114 views
3

我有一个会话,在30分钟的不活动被销毁或23.4小时后被销毁。PHP会话到期

我的问题是无论活动会话在30分钟后被销毁。因此,如果用户在23.4小时内一直处于活动状态,会话应保持23.4小时,然后销毁,迫使用户再次登录,但即使用户在这30分钟内持续活动,会话也会在30分钟后被销毁。

由于垃圾收集器查看修改的时间而不是访问的时间,会话正在使用time()进行更新,以便在用户在网站上执行任何操作时更新修改的时间。

这里是在php.ini会话设置:

Directive     Local Value  Master Value 
session.cache_expire  30    30 
session.cookie_lifetime  1800   1800 
session.gc_divisor   1000   1000 
session.gc_maxlifetime  84400   84400 
session.gc_probability  1    1 
session.save_handler  files   files 

如果您需要任何其他的会议INI设置让我知道。

任何帮助,这将不胜感激。

感谢

+0

有两种选择在这个其他StackOverflow的问题是如何工作的一个很好的解释:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after- 30分钟 – Merijn 2011-01-28 11:05:45

回答

3

session.cookie_lifetime设置为30分钟,这样的cookie将过期后30分钟,它whont被发送到服务器上的下一个请求(后30分钟已经过去了),而PHP就会发出另一个会话因为他/她(php)在请求中没有收到它。

+0

对服务器的每个请求都不更新cookie吗? – Nalum 2011-01-28 11:11:34

0
  1. 请勿触摸会话的默认设置。保留默认值。

  2. 使用会话本身检查会话生存期。