когда я использую get_userdata для сеанса, он дает массив ([__ci_last_regenerate] => 1561454057), но когда я использую userdata, он дает пустой - PullRequest
0 голосов
/ 25 июня 2019

Я хочу получить идентификатор пользователя текущего сеанса в другом после перенаправления, но он показывает пустое значение. Я использую php 7.1.23 и ci 3.1.10.

$this->session->set_userdata('user_id',$user_id);
            return redirect('Admin/Admin_dashboard');

$user_id = $this->session->get_userdata('user_id');
            print_r($user_id); exit;

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Метод 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, что может привести к тому, что данные сеанса не будут сохранены и / или восстановлены.

0 голосов
/ 25 июня 2019

Попробуйте -

$this->session->set_userdata('user_id',$user_id);
            return redirect('Admin/Admin_dashboard');

$user_id = $this->session->userdata('user_id');
            print_r($user_id); 
            exit;

Вы используете это $ this-> session-> userdata ('user_id');

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