Latest web development tutorials

Sesiones CGI de Ruby

CGI :: Sesión se puede guardar como entorno de usuario y CGI persistente estado de la sesión, después de las sesiones deben ser cerradas, por lo que puede garantizar que los datos se escriben en la memoria que, una vez finalizada la sesión, es necesario eliminar los datos.

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

El acceso "/cgi-bin/test.cgi?bgcolor=red" saltará a un color de fondo de página específica.

existen datos de sesión en un directorio de archivos temporales en el servidor, el parámetro prefijo especifica el prefijo de la sesión, como prefijo para los archivos temporales. En el servidor de manera que pueda identificar fácilmente las diferentes sesiones de archivos temporales.


clase CGI :: Sesión

CGI :: Session para mantener un estado persistente de que el usuario y el medio ambiente CGI. Sesión en la memoria también puede estar en el disco duro.

Los métodos de clase

Rubí CGI clase Class :: Sesión proporciona una forma sencilla de crear la sesión:

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

CGI habilitar una nueva sesión y devuelve el objeto CGI :: Sesión correspondiente. Las opciones pueden ser de hash opcional, que pueden ser los siguientes valores:

  • session_key: Save claves de sesión por defecto _session_id.
  • session_id: único identificador de sesión.generada automáticamente
  • new_session: Si crea un nuevo identificador de sesión para la sesión actual es verdad.Si es falso, mediante el uso de la identidad de la sesión existente session_id. Si se omite, si está disponible, utilice una sesión existente, o la creación de una nueva.
  • database_manager: guardar las sesiones de clases, puede ser CGI :: :: Sesión FileStore o CGI :: sesión :: MemoryStore.El valor predeterminado es FileStore.
  • tmpdir: Para FileStore, un directorio de sesión de almacenamiento de fallas.
  • prefijo: Para FileStore, un prefijo de archivo de sesión.

Ejemplos de métodos

No. Descripción del método
1 []
Devuelve el valor de la clave. Véanse los ejemplos.
2 [] =
Establece el valor de la clave dada. Véanse los ejemplos.
3 borrar
método Delete llama a la gestión de base de datos subyacente. Para FileStore, eliminar el archivo físico que contiene la sesión. Para MemoryStore, eliminar datos de la sesión de la memoria.
4 actualización
Llamar al método de actualización de la gestión de base de datos subyacente. Para FileStore, la sesión se graba en el disco. Para MemoryStore ningún efecto.