Клас SessionHandlerInterface
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Вступ
SessionHandlerInterface - це інтерфейс, який визначає мінімальний прототип для створення користувальницького оброблювача сесії. Для надання користувальницького оброблювача сесії функції session_set_save_handler(), Використовуючи її ООП реалізацію, клас повинен реалізовувати цей інтерфейс.
Зауважте, що callback-методи цього класу створені для внутрішніх викликів PHP і не призначені для викликів з вашого коду.
Огляд інтерфейсів
interface SessionHandlerInterface {
/* Методы */
public close(): bool
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}
Приклад #1 Приклад використання SessionHandlerInterface****
Наступний приклад реалізує файлову сесію так само, як це реалізовано у внутрішньому обробнику сесії PHP. Цей приклад може бути легко розширений для забезпечення зберігання сесій в базі даних.
Зверніть увагу, що ми використовуємо об'єктно-орієнтовані прототипи з функцією session_set_save_handler() та реєструємо функцію завершення (shutdown) використовуючи один із параметрів цієї функції. Ця дія рекомендується проводити в більшості випадків, коли об'єкти реєструються як обробники сесії.
Застереження
Для стислості в цьому прикладі не додано перевірку вхідних даних. Зверніть увагу, що параметр $id
надається користувачем і обов'язково повинен перевірятися для виключення можливих атак, які використовують, наприклад, проблеми обходу шляху . Так що в жодному разі не використовуйте цей код у промисловій експлуатації, не додавши відповідних перевірок.
Loading...
Зміст
- SessionHandlerInterface::close - Закриває сесію
- SessionHandlerInterface::destroy - Знищує сесію
- SessionHandlerInterface::gc - Очищає старі сесії
- SessionHandlerInterface::open - Ініціалізує сесію
- SessionHandlerInterface::read— Читає дані сесії
- SessionHandlerInterface::write— Записати дані сесії