http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
表示 session.cookie_lifetime 为 0“一直持续到浏览器关闭为止”。这是会话可以拥有的绝对最大长度(在浏览器关闭时总是被擦除),还是将 session.cookie_lifetime 设置为 23243245234 会产生一个可能会在浏览器关闭后持续存在的结果?
更重要的是,我需要设置哪些 php.ini 设置才能使会话持续两天,并且是否有安全原因推荐某个(我希望更低)的时间限制,如果是的话怎么办推荐的期限是?
预期行为编辑:这是我想要实现的目标,也许我能够通过获取一些设置建议而不是 php.ini 设置的特定值来理解行为:
我希望会议持续尽可能长的时间,最多(大约)两天。
如果会话可以在浏览器关闭后持续,我希望它这样做(最多大约两天)。
我将为 php.ini 设置设置什么(是的,我可以直接编辑 php.ini)来实现这一目标?
关于会话,您需要担心两个参数。第一个是 cookie 的 TTL,另一个是会话数据文件在被垃圾收集之前可以保存多久。
session.cookie_lifetime 确定发送到浏览器的 cookie 将持续多长时间(以秒为单位)。它默认为 0,这意味着直到浏览器关闭。两天需要 172800 秒。
session.gc_maxlifetime 确定在服务器上标记的会话数据多久之前将被视为垃圾并可以删除。
设置这两个 ini 指令应该能让您的会话存活两天,除了您需要注意的另一件事之外。
某些操作系统在其默认临时目录上执行自动垃圾收集。如果 PHP 配置为在那里存储会话数据,那么如果临时目录的 GC 周期很短,您可能会发现在达到 session.gc_maxlifetime 中的值之前您自己丢失了会话。为了避免这种情况,请确保 PHP 将会话数据存储到 /tmp 或主机操作系统的临时目录之外的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)