Ruby-CGI-Sitzung

CGI::Session kann einen persistenten Sitzungszustand für Benutzer und die CGI-Umgebung speichern. Sitzungen müssen nach der Verwendung geschlossen werden, wodurch sichergestellt wird, dass Daten in den Speicher geschrieben werden. Wenn die Sitzung beendet ist, müssen Sie die Daten löschen.

Beispiele

#!/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"]){ "Der Hintergrund dieser Seite" + "ändert sich basierend auf dem 'bgcolor'" + "das jeder Benutzer in der Sitzung hat." + "Letzte Zugriffszeit: #{lastaccess}" } } }

Der Besuch von "/cgi-bin/test.cgi?bgcolor=red" führt zu einer Seite mit der angegebenen Hintergrundfarbe.

Sitzungsdaten werden im temporären Dateiverzeichnis des Servers gespeichert. Der Parameter prefix gibt das Präfix der Sitzung an, das als Präfix der temporären Datei dient. Auf diese Weise können Sie verschiedene temporäre Sitzungsdateien auf dem Server leicht identifizieren.


CGI::Session-Klasse

CGI::Session verwaltet den persistenten Zustand zwischen einem Benutzer und der CGI-Umgebung. Sitzungen können im Arbeitsspeicher oder auf der Festplatte liegen.

Klassenmethoden

Die Ruby-Klasse CGI::Session bietet einfache Methoden zum Erstellen einer Sitzung:

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

Startet eine neue CGI-Sitzung und gibt das entsprechende CGI::Session-Objekt zurück. Die Optionen können ein optionaler Hash sein und können die folgenden Werte annehmen:

  • session_key:Der Schlüsselname zum Speichern der Sitzung, standardmäßig _session_id.
  • session_id:Eine eindeutige Sitzungs-ID. Automatisch generiert.
  • new_session:Wenn true, wird eine neue Sitzungs-ID für die aktuelle Sitzung erstellt. Wenn false, wird eine vorhandene Sitzungs-ID über session_id verwendet. Wenn dieser Parameter ausgelassen wird, verwenden Sie die vorhandene Sitzung, falls verfügbar; andernfalls erstellen Sie eine neue.
  • database_manager:Die Klasse, die zum Speichern von Sitzungen verwendet wird; sie kann CGI::Session::FileStore oder CGI::Session::MemoryStore sein. Standardmäßig FileStore.
  • tmpdir:Für FileStore ist es das Speicherverzeichnis für Sitzungen.
  • prefix:Für FileStore ist es das Präfix für Sitzungsdateien.

Instanzmethoden

Nein.Methodenbeschreibung
1[ ]
Gibt den Wert für den angegebenen Schlüssel zurück. Siehe das Beispiel.
2[ ]=
Legt den Wert für den angegebenen Schlüssel fest. Siehe das Beispiel.
3Löschen
Ruft die delete-Methode der zugrunde liegenden Datenbankverwaltung auf. Für FileStore löscht sie die physische Datei, die die Sitzung enthält. Für MemoryStore entfernt sie die Sitzungsdaten aus dem Speicher.
4update
Ruft die update-Methode der zugrunde liegenden Datenbankverwaltung auf. Für FileStore schreibt sie die Sitzung auf die Festplatte. Für MemoryStore hat sie keine Auswirkung.
Andere Erweiterungen