Обновление Codeigniter 2.0.2 до 3.1.10 проблема сеанса на локальном mamp

#php #codeigniter #wamp

#php #codeigniter #wamp

Вопрос:

Я обновляю свой Codeigniter. Я удалил системную папку и заменил ее новой. Я выполнил инструкции по обновлению с 2.2.x до 3.0.x. Это мои новые настройки для сеанса:

 $config['sess_driver']      = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration']  = 0;
$config['sess_save_path']   = APPPATH.'/sessions';
$config['sess_match_ip']    = FALSE;

$config['sess_time_to_update']     = 300;
$config['sess_regenerate_destroy'] = FALSE;

$config['cookie_domain']   = '';
$config['cookie_path']     = '/';
$config['cookie_secure'    = FALSE;
  

Я использую:

   $newdata = array(
          'username'  => $member->email,
          'email'     => $member->member_id,
          'logged_in' => TRUE
  );

  $this->session->set_userdata($newdata);
  

Я могу распечатать пользователя, электронное письмо после set_userdata, но когда я перенаправляю на страницу по умолчанию в моем администраторе, я получаю

$_SESSION пусто

(за исключением __ci_last_regenerate )

Папка «В порядке» (я вижу новый сеанс).

Я использую MAMP PRO 5.3 с портом 8890 для ssl. Я пробовал драйвер базы данных с теми же результатами.

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

1. Я пробовал PHP 7.1.26, 7.0.33, 5.6

2. Попробуйте использовать $this->session->set_userdata('index',$newdata) , а затем получить к нему доступ с $this->session->userdata['index'] помощью (поскольку вы используете сеансы CI, лучше использовать $this->session , а не $_SESSION ( 'index' отчасти потому, что CI имеет тенденцию плохо себя вести, если вы не вкладываете переменные сеанса в индекс … у него может быть любое имя, которое вам нравится)

3. В приведенном выше примере вы бы использовали $this->session->userdata['index']['username'] или могли бы перебирать весь индекс с foreach ($this->session->userdata['index'] as $s) помощью, а затем просто использовать $s->username , $s->email и т. Д

4. @JavierLarroulet, спасибо, но результаты те же. Я добавил error_log в сеанс, и я вижу, что session_start() вызывается пару раз для 1 login()

5. возможно, у вас там конфликт (использование собственных сеансов PHP в вашем коде наряду с сеансами CI вызывает беспорядок). Я бы посоветовал удалить все session_start() вызовы в вашем коде и просто загрузить библиотеку сеансов CI автоматически.