Latest web development tutorials

Ruby-CGI-Sessions

CGI :: Session können sich als Benutzer und CGI-Umgebung persistent Sitzungszustand gespeichert werden, nachdem die Sitzungen geschlossen werden müssen, so können Sie die Daten sicher in den Speicher geschrieben wird, die, wenn die Sitzung beendet ist, müssen Sie die Daten zu löschen.

#!/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}"
    }
  }
}

Access "/cgi-bin/test.cgi?bgcolor=red" wird zu einer bestimmten Seite Hintergrundfarbe springen.

Session-Daten besteht in einem Verzeichnis für temporäre Dateien auf dem Server, Präfix-Parameter mit dem Präfix der Sitzung, als Präfix für temporäre Dateien angibt. Auf dem Server, so dass Sie die verschiedenen Sitzungen temporäre Dateien leicht identifizieren können.


CGI :: Session-Klasse

CGI :: Session einen dauerhaften Zustand des Benutzers und der CGI-Umgebung aufrecht zu erhalten. Session im Speicher können auch auf der Festplatte sein.

Klassenmethoden

Ruby-Klasse Klasse CGI :: Session bietet eine einfache Möglichkeit Sitzung zu erstellen:

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

CGI ermöglichen eine neue Sitzung und gibt die entsprechenden CGI :: Session-Objekt. Die Optionen können optional Hash sein, was die folgenden Werte sein kann:

  • session_key: Save Session - Schlüssel standardmäßig _session_id.
  • Sitzungs_ID: eindeutige Session - ID.automatisch generierte
  • new_session: Wenn Sie eine neue Session - ID der aktuellen Sitzung wahr ist.Wenn dies falsch ist, durch die vorhandene Sitzung Sitzungs_ID Identität verwenden. Wenn nicht vorhanden, wenn vorhanden, eine bestehende Sitzung, oder die Schaffung eines neuen.
  • database_manager: Save - Sitzungen für die Klassen, können CGI sein :: Session :: Filestore oder CGI :: Session :: Memorys.Der Standardwert ist Filestore.
  • tmpdir: Für Filestore, eine Sitzung Fehlerspeicherverzeichnis.
  • Präfix: Für Filestore, eine Sitzungsdatei - Präfix.

Beispiele für Verfahren

Nein. Methode Beschreibung
1 []
Gibt den Schlüsselwert. Siehe Beispiele.
2 [] =
Setzt den gegebenen Schlüsselwert. Siehe Beispiele.
3 löschen
Delete-Methode ruft die zugrunde liegende Datenbank-Management. Für Filestore, löschen Sie die physische Datei, die die Sitzung enthält. Für Memorys, Session-Daten aus dem Speicher zu entfernen.
4 Aktualisierung
Rufen Sie die Update-Methode des zugrunde liegenden Datenbank-Management. Für Filestore, wird die Sitzung auf den Datenträger geschrieben. Für Memorys keine Wirkung.