Session CGI en Ruby

CGI::Session peut enregistrer un état de session persistant pour les utilisateurs et l'environnement CGI. Les sessions doivent être fermées après utilisation, ce qui garantit que les données sont écrites dans le stockage. Lorsque la session est terminée, vous devez supprimer les données.

Exemples

#!/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"]){ "L'arrière-plan de cette page" + "change en fonction du 'bgcolor'" + "chaque utilisateur a en session." + "Heure du dernier accès : #{lastaccess}" } } }

Visiter "/cgi-bin/test.cgi?bgcolor=red" vous redirigera vers une page avec la couleur d'arrière-plan spécifiée.

Les données de session sont stockées dans le répertoire des fichiers temporaires du serveur. Le paramètre prefix spécifie le préfixe de la session, qui servira de préfixe au fichier temporaire. Ainsi, vous pouvez facilement identifier les différents fichiers temporaires de session sur le serveur.


Classe CGI::Session

CGI::Session maintient l'état persistant entre un utilisateur et l'environnement CGI. Les sessions peuvent être en mémoire ou sur disque.

Méthodes de classe

La classe Ruby CGI::Session fournit des méthodes simples pour créer une session :

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

Démarre une nouvelle session CGI et renvoie l'objet CGI::Session correspondant. Les options peuvent être un hash facultatif et peuvent prendre les valeurs suivantes :

  • session_key:Le nom de la clé pour sauvegarder la session, par défaut _session_id.
  • session_id:Un identifiant de session unique. Généré automatiquement.
  • new_session:Si true, créez un nouvel ID de session pour la session en cours. Si false, utilisez un identifiant de session existant via session_id. Si ce paramètre est omis, utilisez la session existante si disponible ; sinon, créez-en une nouvelle.
  • database_manager:La classe utilisée pour stocker les sessions, qui peut être CGI::Session::FileStore ou CGI::Session::MemoryStore. Par défaut, FileStore.
  • tmpdir:Pour FileStore, il s'agit du répertoire de stockage des sessions.
  • prefix:Pour FileStore, il s'agit du préfixe des fichiers de session.

Méthodes d'instance

Non.Description de la méthode
1[ ]
Renvoie la valeur pour la clé donnée. Voir l'exemple.
2[ ]=
Définit la valeur pour la clé donnée. Voir l'exemple.
3effacement
Appelle la méthode delete de la gestion de base de données sous-jacente. Pour FileStore, supprime le fichier physique contenant la session. Pour MemoryStore, supprime les données de session de la mémoire.
4update
Appelle la méthode update de la gestion de base de données sous-jacente. Pour FileStore, écrit la session sur le disque. Pour MemoryStore, cela n'a aucun effet.
Autres extensions