SessionHandlerInterface::write
(PHP 5 >= 5.4.0, PHP 7)
SessionHandlerInterface::write — Записать данные сессии
Описание
$session_id
, string $session_data
)Записывает данные сессии в хранилище сессий. Вызывается функцией session_write_close(), когда неудачно завершается функция session_register_shutdown() или во время нормального завершения работы. Внимание: SessionHandlerInterface::close() вызывается сразу же после этой функции.
PHP вызывает этот метод, когда сессия готова для сохранения и закрытия. Кодируются данные сессии из суперглобального массива $_SESSION в сериализованную строку и передаются вместе с идентификатором сессии данному методу для хранения. Используемый метод сериализации указан в опции session.serialize_handler.
Обратите внимание, что этот метод обычно вызывается PHP после закрытия буферов вывода, если явно не вызывается session_write_close().
Список параметров
-
session_id
-
Идентификатор сессии.
-
session_data
-
Закодированные данные сессии. Эти данные - результат внутреннего кодирование PHP суперглобального массива $_SESSION в сериализованную строку и передачи ее в качестве этого параметра. Заметьте, что сессии используют альтернативный метод сериализации.
Возвращаемые значения
Возвращаемое значение сессионного хранилища (обычно TRUE
в случае успеха, FALSE
в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с сессиями
- Управление сессиями
- Функция SessionHandlerInterface::close() - Закрывает сессию
- Функция SessionHandlerInterface::destroy() - Уничтожает сессию
- Функция SessionHandlerInterface::gc() - Очищает старые сессии
- Функция SessionHandlerInterface::open() - Initialize session
- Функция SessionHandlerInterface::read() - Читает данные сессии
- Функция SessionHandlerInterface::write() - Записать данные сессии
Коментарии
Note: this function won't be called in case $session_data is unchanged. In order to call this function every time when session is about closing, add $_SESSION["timestamp"] = time();
It is important to note that if returning FALSE from this method, PHP will in turn output the following warning:
Warning: Unknown: Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0.
This could cause minor inconveniences, however if the session should not be written as per design, then returning TRUE after handling (and not writing) the session will avoid further issues.
All in all, better return TRUE at all times except in cases of hard errors.
Warning: session_write_close(): Session callback expects true/false return value in Unknown on line 0
I have returned TRUE in write() but the warning still persist. Then I also return TRUE in close() and the warning is gone.