CodeIgniter сесии

djman

Registered
Имам сесия $_SESSION['user_info']['id']
Как да я изобразя чрез CodeIgniter?

Мерси!!!
 
djpatzo каза:
http://codeigniter.com/user_guide/libraries/sessions.html

Прочетох няколко пъти страницата, но не намерих това :(

До колкото разбрах, $_SESSION['user_info'] става $this->session->userdata('user_info'); НО какво правим с второто - ['id'] ? Освен това пробвах да print_r това, но не излезе нищо :roll:
 
Код:
echo $this->session->userdata('user_info');

Явно нещо не се понасят по този начин. В сайта и линка, който ти дадох гледам следното
Note: The Session class does not utilize native PHP sessions. It generates its own session data, offering more flexibility for developers.
После видях следното...
Код:
[array]
(
     'session_id'    => random hash,
     'ip_address'    => 'string - user IP address',
     'user_agent'    => 'string - user agent data',
     'last_activity' => timestamp
)

Т.е. поставят се примерно в твоя случай с ['id'] в array. Извеждат се така.
Където item е индекса в array, който прави връзката към детайла който искаш да избереш. За пример със session_id даваме следното:
Код:
$session_id = $this->session->userdata('session_id');
Бележка: Фукцията ще върне FALSE (boolean) ако детайла, който се опитваш да ползваш не съществува.
Т.е. сложи в array тези, които са ти след $_SESSION['user_info'][ТЕЗИ_ТУК]

П.П.: КОЕ НЕ РАЗБРА В СЛУЧАЯ ??? :) :) :) :o :o :o
Чети е казало едно от емотикончетата и намери смисъла в бележките. Малко груб превод ти направих от страницата, която ти дадох.
 
Мда, не бях се сетил за тоя начин, но:

$this->session->set_userdata('user_id', $_SESSION['user_info']['id']);
$userid=$this->session->userdata('user_id');

дава грешка Message: Undefined variable: _SESSION

:roll:
 
djman каза:
Мда, не бях се сетил за тоя начин, но:

$this->session->set_userdata('user_id', $_SESSION['user_info']['id']);
$userid=$this->session->userdata('user_id');

дава грешка Message: Undefined variable: _SESSION

:roll:

Добре направи си в променлива следното нещо и така пробвай.

Код:
$user_info_id = $_SESSION['user_info']['id'];
// И СЛЕД ТОВА СЛЕДНОТО
$this->session->set_userdata('user_id', $user_info_id);
$user_id = $this->session->userdata('user_id');
Не съм сигурен дали ще стане, но това CodeIgniter за 1-ви път го чувам. И следвам някаква логика от това howto което ти дадох.

EDIT: Може и да направиш следното може да стане.....
Код:
[array]
(
     'session_id'    => $_SESSION['user_info']['id'],
     'ip_address'    => $_SESSION['user_info']['ip'],
     'user_agent'    => $_SESSION['user_info']['agent'],
     'last_activity' => $_SESSION['user_info']['l_activity']
)
 
CI не ползва истински сесии, това неговото е имитация с куки. Сложи session_start() в индекса.
Може и да не стане в индекса, тррябва да изровиш къде пуска output buffer-a, в момента не мога да проверя
като пуснеш сесията просто echo $_SESSION['tov']['a']
 
alex95_bg_2 каза:
CI не ползва истински сесии, това неговото е имитация с куки. Сложи session_start() в индекса.
Може и да не стане в индекса, тррябва да изровиш къде пуска output buffer-a, в момента не мога да проверя
като пуснеш сесията просто echo $_SESSION['tov']['a']

Сложих session_start() в началото, стана. Много глупаво от моя страна да не го сложа ...

Благодаря много и на двамата!
 

Back
Горе