#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 автоматически.