在标准PHP中,我可以通过以下方式设置会话ID:
$my_session_id = $_GET['session_id']; //gets the session ID successfully
session_id($my_session_id); //sets the session with my session_id
session_start(); //starts session.
我如何对CodeIgniter做同样的事情?我正在努力追随:
$my_session_id = $_GET['session_id']; //gets the session ID successfully
$this->session->userdata('session_id', $my_session_id); //it won't set the session with my id.
print_r($this->session->userdata);
我犯了一些错误吗?请帮助我,因为我浪费了几个小时来解决这个问题。如果CodeIgniter Session类存在问题,我可以使用标准PHP代码启动会话吗?我也尝试将标准代码放在CodeIgniter中,但它仍然没有设置session_id。我还设置了$config['sess_match_useragent'] = FALSE;
答案 0 :(得分:6)
你不应该这样做,codeigniter会为你做这一切。
如果您希望获得会话ID,可以致电:
$session_id = $this->session->userdata('session_id');
但是你可以解决它:(注意这篇文章是3岁,我不确定它是否仍然是必要的)
答案 1 :(得分:0)
使用它在codeigniter中设置session_id:
$this->session->set_userdata( array('session_id', $your_session_id) );
和
$session_id = $this->session->userdata('session_id');
再次阅读。
答案 2 :(得分:0)
这是我刚刚在另一个question上建议的黑客攻击。将其放在__construct
的{{1}}中(未经测试,不适用于加密)
MY_Session
答案 3 :(得分:0)
在修改任何会话变量之前,应始终启动会话。
我相信启动CodeIgniter会话,您可以执行以下操作;
$this->load->library('session');
$my_session_id = $_GET['session_id']; //gets the session ID successfully
$this->session->userdata('session_id', $my_session_id); //it won't set the session with my id.
print_r($this->session->userdata);