Codeigniter:Session_id 为空

Posted

技术标签:

【中文标题】Codeigniter:Session_id 为空【英文标题】:Codeigniter : Session_id is empty 【发布时间】:2015-12-05 18:51:13 【问题描述】:

我在 php Codeigniter 中遇到问题,我正在尝试获取会话 ID,但它返回一个空字符串,

这是我的代码(ControllerTest.php):

class ControllerTest extends CI_Controller
   
    public function test()
        echo "session: ".$this->session->userdata('session_id');
    

在 autoload.php 我有这个:

$autoload['libraries'] = array('database', 'session');

在输出中,我只得到这个: session:

编辑:

当我打印会话 print_r($this->session->userdata); 时,我得到了这个:

Array ( [__ci_last_regenerate] => 1441821744 )

如果我尝试像这样访问 ip_address:

$this->session->userdata('ip_address');

它也返回一个空字符串

【问题讨论】:

你是否包含了 session_start();? 我认为在codeigniter中我们不必使用session_start,我们需要做的就是加载会话库 在这篇文章中link 他们说:To initialize the Session class manually in your controller constructor, use the $this->load->library() method 正在查找会话 ID?如果你使用 CI3,你应该使用 $this->session->session_id。他们将会话库从 V2 更改为 V3。 根据文档,您应该使用 $_SERVER['REMOTE_ADDR'] 来获取用户 ip。您还可以使用 session_id() 来访问会话 ID。 codeigniter.com/user_guide/libraries/… 【参考方案1】:

    试试这个

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

    试试这个,

    $this->session->all_userdata();

并返回如下关联数组:

Array
(
    [session_id] => 4a5a5dca22728fb0a84364eeb405b601
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
    [last_activity] => 1303142623
)

【讨论】:

以上是关于Codeigniter:Session_id 为空的主要内容,如果未能解决你的问题,请参考以下文章

Application Insights - ASP.NET Core - Session_Id 为空

Codeigniter 3 - 从外部 Codeigniter 安装访问会话

CodeIgniter 会话为空

如何在codeigniter中使用会话表

Codeigniter 表单发布数据为空

如何获取 codeigniter 会话 userdata 变量的值?