codeigniter 会话在获取之前存在

codeigniter session exists before taken

虽然我的项目 运行 第一次使用以下功能:

public function index()
{
    $this->session->set_userdata(array('value'=> $this->session->session_id));

    $ses_id=$this->session->userdata('value');  

    $info['session_id']=$ses_id;

    $this->load->view('index',$info);
}

现在,如果我用 echo $ses_id 打印 $ses_id,那么它会显示会话 ID。但是如果我省略函数体中的第一行,函数就会变成如下代码:

public function index()
{   
    echo $ses_id=$this->session->userdata('value'); 

    $info['session_id']=$ses_id;

    $this->load->view('index',$info);
}

然后它也显示会话ID,虽然它还没有被占用。在我获取会话 ID 之前出现的问题可能是什么?

您对session的概念不清楚。所以首先你需要研究和理解会话是如何工作的。请检查此 Codeigniter Session 以便更好地理解。

JFI,在codeigniter中会话数据数组默认包括4项:

  1. session_id
  2. ip_address
  3. user_agent
  4. last_activity

一旦您将值存储在会话中并省略第一行,它肯定会在 $sess_id b/c 中显示值已存储在浏览器中,在您 clear/destroy/expire 会话之前不会删除。