【发布时间】:2014-04-22 13:48:23
【问题描述】:
如何将会话生命周期设置为无限?有一个设置session.cookie_lifetime,但我找不到需要为无限寿命设置的值。我试过 0 但是一旦浏览器关闭它就会过期。
ini_set('session.cookie_lifetime', 0);
【问题讨论】:
-
你想解决什么问题需要这么长的会话生命周期?
如何将会话生命周期设置为无限?有一个设置session.cookie_lifetime,但我找不到需要为无限寿命设置的值。我试过 0 但是一旦浏览器关闭它就会过期。
ini_set('session.cookie_lifetime', 0);
【问题讨论】:
session.gc_maxlifetime 是控制存储在服务器上的会话中的数据保持多长时间有效的值($_SESSION 字典是您访问数据的方式。)值 session.cookie_lifetime 控制数据在浏览器中的持续时间cookie 有效(值为 0 表示“直到浏览器关闭”)。
由于最初的问题是关于如何使会话无限有效,因此准确的答案是将session.gc_probability 值更改为 0,这意味着垃圾收集器永远不会调用。 (当然,请确保那是您真正想做的。)
这些值也可以在 php.ini 中设置。
session.gc_probability reference
希望这会有所帮助。
【讨论】:
在manual中是这样说的:
值 0 表示“直到浏览器关闭”。默认为 0。
【讨论】:
也许您可以尝试将过期时间设置为一个非常大的值? :)
根据我对这个问题的看法,你需要的不仅仅是你在问题中写的那行,像这样:
//set cookie lifetime for 100 days (60sec * 60mins * 24hours * 100days)
ini_set('session.cookie_lifetime', 60 * 60 * 24 * 100);
ini_set('session.gc_maxlifetime', 60 * 60 * 24 * 100);
//maybe you want to precise the save path as well
ini_set('session.save_path', '/home/yoursite/sessions');
//then start the session
session_start();
祝你好运!
【讨论】: