Latest web development tutorials

Сессии CGI на Ruby

CGI :: Session может быть сохранен как пользователь и CGI состоянии окружающей среды стойкими сессии после сессии должны быть закрыты, так что вы можете гарантировать, что данные записываются в память, которая, когда сеанс закончен, вам необходимо удалить данные.

#!/usr/bin/ruby

require 'cgi'
require 'cgi/session'
cgi = CGI.new("html4")

sess = CGI::Session.new( cgi, "session_key" => "a_test",
                              "prefix" => "rubysess.")
lastaccess = sess["lastaccess"].to_s
sess["lastaccess"] = Time.now
if cgi['bgcolor'][0] =~ /[a-z]/
  sess["bgcolor"] = cgi['bgcolor']
end

cgi.out{
  cgi.html {
    cgi.body ("bgcolor" => sess["bgcolor"]){
      "The background of this page"    +
      "changes based on the 'bgcolor'" +
      "each user has in session."      +
      "Last access time: #{lastaccess}"
    }
  }
}

Доступ к "/cgi-bin/test.cgi?bgcolor=red" будет переходить на определенный цвет фона страницы.

Данные сессии существует во временном каталоге файлов на сервере, параметр префикс указывает префикс сессии, в качестве префикса для временных файлов. На сервере, так что вы можете легко определить различные сеансы временных файлов.


класс CGI :: Session

CGI :: Session поддерживать постоянное состояние пользователя и окружающей среды CGI. Сессия в памяти также может быть на жестком диске.

методы класса

Рубин CGI класс Class :: Session предоставляет простой способ создания сеанса:

CGI::Session::new( cgi[, option])

CGI включить новую сессию и возвращает соответствующий объект CGI :: Session. Варианты могут быть необязательными хэш, который может содержать следующие значения:

  • session_key: Сохранение ключей сеанса по умолчанию _session_id.
  • session_id: уникальный идентификатор сеанса.Автоматически генерируемый
  • new_session: Если вы создаете новый идентификатор сеанса для текущего сеанса верно.Если ложь, с помощью существующий сеанс session_id идентичности. Если этот параметр опущен, если таковая имеется, использовать существующий сеанс, или создание новой.
  • database_manager: Сохранение сессий для классов, могут быть CGI :: Session :: FILESTORE или CGI :: Session :: MemoryStore.По умолчанию FileStore.
  • TMPDIR: Для FILESTORE, каталог сеанса хранения вина.
  • Приставка: Для FILESTORE, префикс файла сеанса.

Примеры методов

Нет. Метод Описание
1 []
Возвращает значение ключа. Смотрите примеры.
2 [] =
Устанавливает заданный значение ключа. Смотрите примеры.
3 удалять
Удаление метод вызывает базовый управление базами данных. Для FILESTORE, удалите физический файл, содержащий сеанс. Для MemoryStore, удалить данные сеанса из памяти.
4 обновление
Вызовите метод обновления базового управления базами данных. Для FILESTORE, сеанс записывается на диск. Для MemoryStore никакого эффекта.