![](/img/trans.png)
[英]Is it possible to set session.gc_maxlifetime > 65535 seconds
[英]opencart set session maxlifetime
我正在尝试为opencart中的会话生存期设置一个特定时间,
深入研究OpenCart结构,我发现了文件会话处理程序system/library/session.php
<?php
class Session {
public $data = array();
public function __construct() {
if (!session_id()) {
ini_set('session.use_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
session_set_cookie_params(0, '/');
session_start();
}
$this->data =& $_SESSION;
}
function getId() {
return session_id();
}
}
?>
我正在做一些测试以查看我的工作是否正常,然后我在system
文件夹中创建了一个my_sessions并编辑了让一分钟后死掉的时间:
<?php
class Session {
public $data = array();
public function __construct() {
if (!session_id()) {
ini_set('session.use_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
session_set_cookie_params(60, '/');
ini_set('session.cache_expire', '1');
ini_set('session.gc_maxlifetime', '60');
ini_set('session.save_path',DIR_SYSTEM.'my_sessions');
session_start();
}
$this->data =& $_SESSION;
}
function getId() {
return session_id();
}
}
?>
现在,我可以看到文件夹中的会话文件,但是它们似乎可以保存任何修改的时间。 我做错了什么?
session.gc_maxlifetime
的文档说:
session.gc_maxlifetime指定秒数,在此秒数之后,数据将被视为“垃圾”并有可能被清除
它可能会清理或保留在当时。 是否清理取决于session.gc_probability
和session.gc_divisor
。 在访问量很大的网站上这不是问题。 但是您只需几次访问就可以在本地计算机上对其进行观察。
无论如何,最好不要依赖服务器端垃圾收集器,而要依赖Cookie的生存期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.