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 为空