Сессия CGI в Ruby
CGI::Session может сохранять постоянное состояние сессии для пользователей и среды CGI. Сессии необходимо закрывать после использования, что гарантирует запись данных в хранилище. Когда сессия завершена, нужно удалить данные.
Примеры
Переход по "/cgi-bin/test.cgi?bgcolor=red" приведёт на страницу с указанным цветом фона.
Данные сессии хранятся во временном каталоге файлов сервера. Параметр prefix задаёт префикс сессии, который будет служить префиксом временного файла. Так вы сможете легко идентифицировать различные временные файлы сессий на сервере.
Класс CGI::Session
CGI::Session поддерживает постоянное состояние между пользователем и средой CGI. Сессии могут находиться в памяти или на диске.
Методы класса
Класс Ruby CGI::Session предоставляет простые методы для создания сессии:
Запускает новую сессию CGI и возвращает соответствующий объект CGI::Session. Параметры могут быть необязательным хешем и могут принимать следующие значения:
- session_key:Имя ключа для сохранения сессии, по умолчанию _session_id.
- session_id:Уникальный идентификатор сессии. Генерируется автоматически.
- new_session:Если true, создаёт новый идентификатор сессии для текущей сессии. Если false, использует существующий идентификатор сессии через session_id. Если этот параметр опущен, используется существующая сессия, если она доступна; в противном случае создаётся новая.
- database_manager:Класс, используемый для хранения сессий, который может быть CGI::Session::FileStore или CGI::Session::MemoryStore. По умолчанию используется FileStore.
- tmpdir:Для FileStore это каталог хранения сессий.
- prefix:Для FileStore это префикс для файлов сессий.
Методы экземпляра
| Нет. | Описание метода |
|---|---|
| 1 | [ ] Возвращает значение для заданного ключа. См. пример. |
| 2 | [ ]= Устанавливает значение для заданного ключа. См. пример. |
| 3 | удаление Вызывает метод delete нижележащего механизма управления базой данных. Для FileStore удаляет физический файл, содержащий сессию. Для MemoryStore удаляет данные сессии из памяти. |
| 4 | update Вызывает метод update нижележащего механизма управления базой данных. Для FileStore записывает сессию на диск. Для MemoryStore не имеет эффекта. |