Установка Session_id в CodeIgniter - PullRequest
4 голосов
/ 12 июля 2011

В стандартном PHP я могу установить идентификатор сессии следующим образом:

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

Ответы [ 4 ]

6 голосов
/ 12 июля 2011

Вам не нужно этого делать, codeigniter сделает все за вас.

Если вы хотите получить идентификатор сеанса, вы можете сделать это, позвонив по номеру:

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

ОднакоВы можете обойти это: (Обратите внимание, что этому посту 3 года, и я не уверен, если это все еще необходимо)

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

0 голосов
/ 12 июля 2011

Вы должны всегда начинать сеанс перед изменением любых переменных сеанса.

Я полагаю, что для запуска сеанса 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);
0 голосов
/ 12 июля 2011

Это хак, который я только что предложил на другой вопрос .Поместите это в __construct из MY_Session (не проверено и не будет работать с шифрованием)

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()
}
0 голосов
/ 12 июля 2011

используйте это для установки session_id в codeigniter:

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

и

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

для повторного чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...