English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CGI::Session puede guardar el estado de sesión persistente para el usuario y el entorno CGI. Después de usar la sesión, debe cerrarla para garantizar que los datos se escriban en el almacenamiento. Cuando finalice la sesión, debe 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"]){ "El fondo de esta página" + "cambios basados en el 'bgcolor'" + "cada usuario tiene en sesión." + "Último tiempo de acceso: #{lastaccess}" } } }
Acceder a "/cgi-bin/test.cgi?bgcolor=red" se saltará a la página con el color de fondo especificado.
Los datos de sesión existen en el directorio temporal del servidor, el parámetro prefix especifica el prefijo de la sesión, que se utiliza como prefijo de los archivos temporales. De esta manera, en el servidor puede identificar fácilmente los archivos temporales de diferentes sesiones.
CGI::Session mantiene el estado persistente del usuario con el entorno CGI. Las sesiones pueden estar en la memoria o en el disco duro.
La clase Ruby Class CGI::Session proporciona métodos sencillos para crear sesiones:
CGI::Session::new( cgi[, option])
Activa una nueva sesión CGI y devuelve el objeto CGI::Session correspondiente. Las opciones pueden ser un hash opcional, y pueden ser los siguientes valores:
session_key: Nombre de clave para guardar la sesión. Por defecto es _session_id.
session_id: ID de sesión único. Generado automáticamente
new_session: Si es verdadero, crea un nuevo id de sesión para la sesión actual. Si es falso, utiliza la identificación de sesión existente a través de session_id. Si se omite este parámetro, si está disponible se utiliza la sesión existente, de lo contrario se crea una nueva.
database_manager: Clase utilizada para almacenar sesiones, puede ser CGI::Session::FileStore o CGI::Session::MemoryStore. Por defecto es FileStore.
tmpdir: Para FileStore, directorio de almacenamiento de errores de sesión.
prefix: Para FileStore, prefijo del archivo de sesión.
Número | Descripción del método |
---|---|
1 | [ ] Devolver el valor de la clave dada. Ver ejemplo. |
2 | [ ]= Establecer el valor de la clave dada. Ver ejemplo. |
3 | eliminar Llamar al método de eliminación de gestión de bases de datos de nivel inferior. Para FileStore, eliminar el archivo físico que contiene la sesión. Para MemoryStore, eliminar los datos de sesión de la memoria. |
4 | actualizar Llamar al método de actualización de gestión de bases de datos de nivel inferior. Para FileStore, escribir la sesión en el disco. Para MemoryStore, no tiene efecto. |