簡體   English   中英

在 CodeIgniter 中設置 Session_id

[英]Setting Session_id in CodeIgniter

在標准 PHP 中,我可以通過以下方式設置 session 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);

我犯了一些錯誤嗎? 請幫助我,因為我在這個問題上浪費了幾個小時。 If there is some issue with CodeIgniter Session class, can I use the standard PHP code to start session? 我也嘗試將標准代碼放在 CodeIgniter 中,但它仍然沒有設置 session_id。 我還設置$config['sess_match_useragent'] = FALSE;

您不需要這樣做,codeigniter 會為您完成這一切。

如果您希望獲得 session id,您可以通過調用:

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

但是您可以解決它:(請注意這篇文章已有 3 年歷史,我不確定它是否仍然有必要)

http://mumrah.net/2008/06/codeigniter-session-id/

使用它在 codeigniter 中設置 session_id:

$this->session->set_userdata( array('session_id', $your_session_id) );

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

再次閱讀。

這是我剛剛在另一個問題上建議的技巧。 將它放在MY_Session__construct中(未經測試,不能用於加密)

public function __construct()
{
   if( isset( $_GET['session_id'] ) ) 
        $_COOKIE[ $this->sess_cookie_name ] = $_GET['session_id'];
   // Session now looks up $_COOKIE[ 'session_id' ] to get the session_id
   parent::__construct()
}

在修改任何 session 變量之前,您應該始終啟動 session。

我相信要啟動 CodeIgniter session 您可以執行以下操作;

$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM