мой session_id изменяется, и сеанс не сохраняет данные

#php #session #codeigniter

#php #сеанс #codeigniter

Вопрос:

вот части, которые я считаю актуальными:

РЕДАКТИРОВАТЬ: когда я использую обычный $_SESSION — все работает…

функция A сохраняет данные сеанса, затем вызывает представление, которое возвращает данные, добавленные к нему пользователем, в функцию B. обе функции A и B находятся на одном контроллере. я использую версию 2.0.2.. поэтому, когда он также попросил меня ввести ключ шифрования в конфигурационный файл.

проблема в том, что сеанс не сохраняет данные при перемещении между страницами.. я также заметил, что это изменяет переменную session_id…

вы знаете, что я делаю не так?

еще одна важная информация — я возвращаю значение, передающее URL-адрес функции B.

приветствие контроллера: Функция

                     ...
        $data = array(
            'username' => $myusername,
            'is_logged_in' => true,
            'permissions' =>$permissions
        );
        $this->session->set_userdata($data);
                    ...
                    ...
                    $this->load->view('login_success',$dataV);
  

приветствие контроллера: functionB

           $user=$this->session->userdata('username');       
          echo "<br> IN LINK REFERENCE: $user";
  

вы знаете, что я делаю не так?

Ответ №1:

Не уверен, но, похоже, вы не инициализировали свою Session библиотеку. Не могли бы вы, пожалуйста, проверить, правильно ли вы инициализировали Session библиотеку? Пожалуйста, проверьте $autoload['libraries'] = array(); в config/autoload каталоге.

Комментарии:

1. я загрузил библиотеку в конструктор контроллеров: $this-> load-> library(‘session’);

2. вы загрузили его в оба контроллера?

3. и теперь я добавил ‘session’ в автозагрузку в конфигурации, но session_id все еще меняется..

4. session_id изменение не является проблемой. Не могли бы вы, пожалуйста, проверить, обращаетесь ли вы к обеим функциям в правильном порядке?

5. Извините… вопрос неправильный. Не могли бы вы, пожалуйста, проверить, что вы установили encryption_key в config ? Вам просто нужно установить это, оно будет использоваться в качестве соли безопасности. Это в applicaiton/config/config.php , строке $config['encryption_key'] . Тогда это сработает в соответствии с вашими ожиданиями.