Метод Session
get_userdata()
не принимает аргумент, поэтому я немного удивлен, что ваше использование не приводит к ошибке. т.е.
$this->session->get_userdata('user_id'); //should throw an error`
$this->session->get_userdata()
возвращает весь массив $_SESSION
.
$this->session->userdata($key)
возвращает $_SESSION[$key]
, если ключ существует, или NULL, если его нет.
Метод userdata()
существует только для обратной совместимости. Рекомендуемый способ получить один элемент из session
- использовать этот синтаксис.
$user_id = $this->session->user_id;
Выше будет установлено $user_id
в $_SESSION ['user_id']
, если ключ 'user_id' существует, или NULL, если его нет. Он также вернет пустой массив, если $_SESSION
не существует, что указывает на то, что session
не был запущен. Однако, поскольку вы видите __ci_last_regenerate
, мы знаем, что session
работает.
Другая возможная причина для пустого массива может заключаться в том, что у вас неправильно настроен session
, что может привести к тому, что данные сеанса не будут сохранены и / или восстановлены.