繁体   English   中英

opencart设置会话的maxlifetime

[英]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_probabilitysession.gc_divisor 在访问量很大的网站上这不是问题。 但是您只需几次访问就可以在本地计算机上对其进行观察。

无论如何,最好不要依赖服务器端垃圾收集器,而要依赖Cookie的生存期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM