English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

RubyCGISession

CGI::Session kann eine dauerhafte Sitzungsstatus für Benutzer und CGI-Umgebung speichern. Nach der Nutzung der Sitzung muss sie geschlossen werden, um sicherzustellen, dass die Daten in das Speichermedium geschrieben werden. Wenn die Sitzung beendet ist, müssen Sie die Daten löschen.

Online-Beispiel

#!/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"]){
      "Hintergrund dieser Seite"    +
      "verändert basierend auf 'bgcolor'" +
      "jeder Benutzer hat eine Session"      +
      "Letzter Zugriff: #{lastaccess}"
    }
  }
}

Zugriff auf "/cgi-bin/test.cgi?bgcolor=red" wird zur Seite mit der angegebenen Hintergrundfarbe weitergeleitet.

Die Sitzungsdaten befinden sich im temporären Dateiverzeichnis des Servers, das Prefix-Parameter das Präfix der Sitzung spezifiziert, das als Präfix für temporäre Dateien dient. Auf diese Weise können Sie verschiedene Sitzungstempdateien auf dem Server leicht erkennen.

Klasse CGI::Session

CGI::Session hält den dauerhaften Zustand des Benutzers mit dem CGI-Umfeld aufrecht. Sitzungen können im Speicher oder auf der Festplatte sein.

Klassenmethode

Die Ruby-Klasse Class CGI::Session bietet einfache Methoden zur Erstellung von Sessions:

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

Aktiviert eine neue CGI-Session und gibt das entsprechende CGI::Session-Objekt zurück. Optionen können optionale Hashes sein, die folgenden Werten entsprechen können:

  • session_key: Schlüsselname zum Speichern der Session. Standardmäßig _session_id.

  • session_id:  Eindeutige Session-ID. Wird automatisch generiert

  • new_session: Wenn true, wird ein neuer Session id für die aktuelle Session erstellt. Wenn false, wird die existierende Session durch session_id identifiziert. Wird dieser Parameter weggelassen, wird eine bestehende Session verwendet, wenn sie verfügbar ist,否则创建一个新的。

  • database_manager: Klasse zur Speicherung von Sessions, kann CGI::Session::FileStore oder CGI::Session::MemoryStore sein. Standardmäßig FileStore.

  • tmpdir:  Für FileStore, ist das Verzeichnis für die falsche Speicherung der Session.

  • prefix: Für FileStore, ist das Präfix für die Session-Datei.

Methodendemonstration

NummerMethodenbeschreibung
1[ ]
Geben Sie den Wert der angegebenen key zurück. Sehen Sie das Beispiel.
2[ ]=
Setzen Sie den Wert der angegebenen key. Sehen Sie das Beispiel.
3delete
Rufen Sie den Delete-Methodenaufruf des unteren Datenbankmanagements ab. Für FileStore, löschen Sie die physischen Dateien, die die Session enthalten. Für MemoryStore, entfernen Sie die Session-Daten aus dem Speicher.
4update
Rufen Sie den Update-Methodenaufruf des unteren Datenbankmanagements ab. Für FileStore, schreiben Sie die Session auf die Festplatte. Für MemoryStore hat es keine Wirkung.