Сессии в Codeigniter с PHP7

Проблема проста. если я использую

$this->session->sess_destroy();
$this->session->sess_regenerate(true);

я получаю сообщение об ошибке:

Message:  session_regenerate_id(): Cannot regenerate session id - session is not active
Filename: Session/Session.php
Line Number: 625

Это происходит только с PHP 7 и работает с 5.6. Я понял, что параметр в функции регенерации настроен на уничтожение старых данных сеанса при регенерации. Когда я пропускаю sess_destroy(), я не получаю сообщения об ошибке, но данные сеанса не уничтожаются, и я не могу выйти из системы.


person Chris    schedule 07.01.2016    source источник


Ответы (1)


Используйте ob_start() перед сессионной библиотекой. И перед кодом уничтожения сеанса добавьте ob_flush() и после этой строки установите ob_clean()


И установите для этого $this->session->sess_regenerate(true); значение FALSE. ob_flush и ob_clean отлично с этим справятся.

person Abdulla Nilam    schedule 07.01.2016