Sessions Ruby CGI
CGI::Session peut enregistrer l'état de session persistant pour l'utilisateur et l'environnement CGI. La session doit être fermée après utilisation. Cela garantit que les données sont écrites dans le stockage lorsque la session est terminée. besoin de supprimer les données.
#!/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}" } } }
Accéder à "/cgi-bin/test.cgi?bgcolor=red" passera à la page avec la couleur d'arrière-plan spécifiée.
Les données de session existent dans le répertoire des fichiers temporaires du serveur. Le paramètre prefix précise le préfixe de la session, qui sera utilisé comme préfixe du fichier temporaire. De cette façon, vous pouvez facilement identifier les différents fichiers temporaires de session sur le serveur.
Classe CGI::Session
CGI::Session maintient un état persistant entre l'utilisateur et l'environnement CGI. Les sessions peuvent être en mémoire ou sur le disque dur.
Méthodes de classe
La classe Ruby Class CGI::Session fournit des méthodes simples pour créer une session :
CGI::Session::new( cgi[, option])
Démarrer une nouvelle session CGI et renvoyer l'objet CGI:: Session correspondant . Les options peuvent être des hachages facultatifs et peuvent avoir les valeurs suivantes :
session_key : Nom de la clé pour enregistrer la session. La valeur par défaut est _session_id.
session_id : ID de session unique. Générer automatiquement
new_session : Si vrai, créez un nouvel identifiant de session pour la session en cours. Si faux, utilisez l'ID de session existant via session_id. Si ce paramètre est omis, une session existante est utilisée si elle est disponible, sinon une nouvelle est créée.
database_manager: Classe utilisée pour sauvegarder les sessions, qui peut être CGI::Session::FileStore ou CGI::Session::MemoryStore. La valeur par défaut est FileStore.
tmpdir : Pour FileStore, le répertoire de stockage des erreurs pour la session.
préfixe : Pour FileStore, c'est le préfixe du fichier de session.
Méthode d'instanciation
Numéro de série< /th> | Description de la méthode | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 |
Renvoie la valeur de la clé donnée. Voir des exemples. | ||||||||||
2 | <🎜>[ ]=<🎜> Définissez la valeur de la clé donnée. Voir des exemples. | ||||||||||
3 | <🎜>delete<🎜> Appelez la méthode delete de la gestion de base de données sous-jacente. Pour FileStore, supprimez le fichier physique contenant la session. Pour MemoryStore, supprimez les données de session de la mémoire. | ||||||||||
4 | <🎜>update<🎜> Appelez la méthode de mise à jour de la gestion de base de données sous-jacente. Pour FileStore, écrivez la session sur le disque. Cela n’a aucun effet sur MemoryStore. |