Latest web development tutorials

Sessioni CGI rubino

CGI :: Session può essere salvato come ambiente utente e CGI stato della sessione persistente, dopo le sessioni devono essere chiusi, in modo da poter garantire che i dati vengono scritti nella memoria, che, quando la sessione è terminata, è necessario eliminare i dati.

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

L'accesso "/cgi-bin/test.cgi?bgcolor=red" salterà a un colore di sfondo della pagina specifica.

I dati di sessione esiste in una directory dei file temporanei sul server, parametro prefix specifica il prefisso della sessione, come un prefisso per i file temporanei. Sul server in modo che si può facilmente identificare le diverse sessioni di file temporanei.


classe CGI :: Session

CGI :: Session per mantenere uno stato persistente dell'ambiente CGI utente e. Session in memoria può anche essere sul disco rigido.

I metodi di classe

Rubino classe Classe CGI :: Session fornisce un modo semplice per creare sessione:

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

CGI abilitare una nuova sessione e restituisce l'oggetto CGI :: Session corrispondente. Le opzioni possono essere hash opzionale, che può essere i seguenti valori:

  • session_key: Salva le chiavi di sessione da _session_id impostazione predefinita.
  • session_id: unico ID di sessione.generato automaticamente
  • new_session: Se si crea un nuovo ID di sessione per la sessione corrente è vero.Se false, utilizzando l'identità sessione esistente session_id. Se omesso, se disponibile, utilizzare una sessione esistente, o la creazione di uno nuovo.
  • database_manager: salvare le sessioni per le classi, può essere CGI :: Session :: FileStore o CGI :: Session :: MemoryStore.Il valore predefinito è FileStore.
  • tmpdir: Per FileStore, una directory di archiviazione di errore di sessione.
  • prefisso: Per FileStore, un prefisso file di sessione.

Esempi di metodi

No. metodo Descrizione
1 []
Restituisce il valore della chiave. Vedi gli esempi.
2 [] =
Imposta il valore dato chiave. Vedi gli esempi.
3 cancellare
metodo delete chiama la gestione del database sottostante. Per FileStore, eliminare il file fisico che contiene la sessione. Per MemoryStore, rimuovere i dati di sessione dalla memoria.
4 aggiornare
Chiamare il metodo di aggiornamento della gestione database sottostante. Per FileStore, la sessione viene scritto su disco. Per MemoryStore alcun effetto.