out-Methode als benannter Parameter übergeben.
cookie1 = CGI::Cookie::new(
"name" => "name",
"value" => "value"
)
cookie2 = CGI::Cookie::new(
"name" => "name",
"value" => ["value1", "value2", ...],
"path" => "path", # optional
"domain" => "domain", # optional
"expires" => Time.now, # optional
"secure" => true # optional
)
cgi.out({"cookie" => [cookie1, cookie2]}){
"HTML-Seite"
}
Vorhandene Cookies stehen in der cookies-Hashtabelle zur Verfügung
und können nach Bedarf manipuliert werden.
require "cgi" cgi = CGI.new # auf Cookies zugreifen name_cookie = cgi.cookies['name'] alle_namen = cgi.cookies.keys # Gültigkeit verlängern for name, cookie in cgi.cookies cookie.expires = Time.now + 30 end
Sessions dienen wie Cookies dazu, Informationen zwischen verschiedenen Seitenaufrufen entweder im RAM oder auf der Festplatte zu speichern.
require "cgi"
require "cgi/session"
cgi = CGI.new("html3")
s = CGI::Session.new( cgi,
"session_key" => "user",
"session_id" => "12345",
"new_session" => true,
"prefix" => "session.")
s["Nr"] = "007"
s["Name"] = "Bond, James"
cgi.out{
cgi.html{
"Nr. #{s['Nr']} heißt #{s['Name']}"
}}
Hier wird im temporären Verzeichnis eine Datei session.12345
angelegt, in der die eigentlichen Informationen gespeichert werden.
Die Kennnummer der Sitzung wird in einem Cookie an den Client gesendet.
Beim nächsten Besuch erhält der Server diese Sitzungsnummer zurück
und kann aus der oben genannten Datei die Kundendaten wieder herstellen.
require "cgi"
require "cgi/session"
cgi = CGI.new("html3")
s = CGI::Session.new( cgi,
"session_key" => "user",
"prefix" => "session.")
cgi.out{
cgi.html{
"Nr. #{s['Nr']} heißt immer noch #{s['Name']}"
}}