【问题标题】:Codeigniter session timeout although clicked through different pages尽管点击了不同的页面,但 Codeigniter 会话超时
【发布时间】:2016-03-19 02:15:59
【问题描述】:

我编写了一个包含一些页面的 web 应用程序,我希望在会话到期时自动注销。一切正常,但我注意到即使我单击并访问不同的页面,我的会话也会在“sess_expiration”时间之后过期。我通常希望如果一个人点击/访问另一个站点,会话应该从一开始就开始计算超时。在我的情况下,访问者只能停留“sess_expiration”时间,然后会话过期,即使他点击并访问了不同的站点。 我只在控制器构造函数中初始化会话一次:

public function __construct() {
    parent::__construct();
    $this->load->library('session'); 
        }

除了在会话中存储用户数据之外,我不会做更多的事情。 我该怎么做才能解决我的问题???

【问题讨论】:

  • 从所有控制器中删除$this->load->library('session');,并在自动加载中包含会话库。

标签: php codeigniter session


【解决方案1】:

将会话类放入自动加载器配置中,在application/config/autoload.php中:

$autoload['libraries'] = array('session' /* , ... */);

然后在每个控制器中自动可用:

$session_id = $this->session->userdata('session_id');

并且您可以在每次登录之后(并且仅在之后!)初始化会话数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多