2015-12-30 4 views
0

Я прорыл все темы сеанса codeigniter, но не нашел решения.Codeigniter 3 сеанса не работают правильно

У меня есть контроллер входа для моего проекта, который отправляет имя пользователя и пароль в мою модель входа. Все это прекрасно работает. Как только я вытаскиваю информацию из базы данных, я устанавливаю некоторую информацию о сеансе.

Вот некоторые фрагменты кода: Config:

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 14400; 
$config['sess_save_path'] = '/var/www/mysite.com/application/cache/'; 
$config['sess_match_ip'] = TRUE; 
$config['sess_time_to_update'] = 0; 
$config['sess_regenerate_destroy'] = FALSE; 

Автозагрузка:

$autoload['libraries'] = array('session', 'database', 'form_validation', 'email'); 

Натяжение идею из базы данных (работает отлично):

$UserID = $this->LoginModel->login($username, $pass); 

Установка сеанса переменная:

$this->session->set_userdata('Sess_ID', md5($UserID.date('YmdHis'))); 

После завершения процесса пользователь отправляется на следующую страницу. Вот где проблемы. Я загружаю простую проверку для переменных сеанса и даже var_dump, но каждый раз, когда сеанс пуст.

public function __construct() { 
     parent::__construct(); 

     echo var_dump($this->session); 
     if ($this->SessionModel->basic() == false) { 
      //$this->SessionModel->logout(); 
      echo 'Session Error'; 

     } 

    } 

Итак, вопрос в том, как я могу назвать сеанс со следующей страницы/контроллера? Я привык использовать session_start(), но это не нужно в codeigniter. Я также подтвердил, что файлы сеансов могут и записываются в каталог.

Ввод пожалуйста ...

+0

, что это '$ this-> session-> userdata ('Sess_ID'); 'давать ?? –

+0

В настоящее время он предоставляет пользовательский session_ID. – Kaleb

+0

Что производит 'var_dump ($ _ SESSION)'? (BTW, не нужно 'echo' var_dump) – DFriend

ответ

0

, чтобы получить все данные сеанса использование:

print_r($this->session->all_userdata()); 

для конкретных данных:

print_r($this->session->userdata('name_of_the_session_variable'); 

в вашем случае:

print_r($this->session->userdata('Sess_ID')); 
+0

print_r ($ this-> session-> all_userdata()); просто подтверждает то же самое, что echo var_dump ($ this-session); делает. – Kaleb

+0

вы можете получить доступ к этой переменной в любом контроллере/модели/представлении по вышеуказанному коду после входа пользователя. – Dray

+0

Ну, это проблема, я не могу. Мой тест запускается после того, как они вошли в систему. Я использовал сеансы много раз во многих проектах, это мой первый опыт работы с CI. Я выполнил все инструкции, которые я нашел. – Kaleb

Смежные вопросы