请参阅
php.ini值session.cookie_lifetime。
默认值
0意味着在浏览器关闭时结束会话。
您可以
php.ini使用ini_set在开始会话之前直接在应用程序中覆盖此值或在应用程序中设置它。将其设置为大于此值
0将导致会话在该持续时间内存活。
例如
ini_set('session.cookie_lifetime', 60 * 60 * 24 * 7); // 7 day cookie lifetimesession_start();
上面的示例使会话cookie的设置从会话开始起的7天到期。
注意:
如果您从同一段代码开始所有网页的会话,则每次
session_start()调用该会话都不会继续延长会话的有效期。cookie生存期是从第一次启动会话时开始设置的,而不是在后续请求时开始设置。如果要将会话的生存期从当前时间延长7天,请参见session_regenerate_id()。
另请注意:
如果您将session.gc_maxlifetime值设置为小于会话cookie长度的值,则可能会出现以下情况:用户5天未访问该站点,并且当他们返回时,会话cookie不再有效因为服务器上的数据已被删除。为了解决这个问题,您还应该将此会话数据的生存期设置为至少与cookie生存期一样长。如手册所述,可能需要对自定义
session.save_path会话数据使用自定义项的时间长于默认值。因此,您的脚本可能如下所示:
ini_set('session.cookie_lifetime', 60 * 60 * 24 * 7);ini_set('session.gc_maxlifetime', 60 * 60 * 24 * 7);ini_set('session.save_path', '/home/yoursite/sessions');session_start();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)