Кажется, что ob_end_flush()
вызывает скрытое закрытие сеанса. Это намеренное поведение? Я полагаю, что ответ «да», но могу ли я как-то предотвратить это?
Вот описание проблемы, с которой я столкнулся. Я использую фреймворк, который использует пользовательский обработчик сеанса, я не думаю, что это важно в этом случае, а просто для информации. Фактическая проблема возникает, когда в какой-то момент в коде кода ob_end_flush()
вызывается. Регистрируя вызовы обработчика пользовательских сеансов, я замечаю, что в этом случае вызываются записи и закрытие сеанса. Это настолько неявное, что я даже не могу отладить его с помощью Zend Debugger, только зарегистрируйте его с помощью error_log. Таким образом, после взаимодействия ob_end_flush()
с сеансом все еще продолжается (я знаю, это может быть неправильно, но все же это так), и в этой ситуации, когда предыдущий сеанс уже закрыт, запускается новый сеанс с новым идентификатором. Новый сеанс имеет новый идентификатор, потому что cookie не установлен на данный момент. Итак, в результате я получил две отдельные сессии с двумя разными идентификаторами.
Лучшим решением для меня, вероятно, было бы отключить это неявное поведение ob_end_flush()
, но я буду принимать любой ответ.
Заранее спасибо.