Latest web development tutorials

Sessions CGI Ruby

CGI :: Session peut être enregistré en tant que l'environnement utilisateur et CGI état de session persistante, après les séances doivent être fermées, de sorte que vous pouvez vous assurer que les données sont écrites dans la mémoire qui, lorsque la session est terminée, vous devez 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ès "/cgi-bin/test.cgi?bgcolor=red" va sauter à une couleur de fond de page spécifique.

Les données de session existe dans un répertoire de fichiers temporaires sur le serveur, le paramètre de préfixe spécifie le préfixe de la session, comme préfixe pour les fichiers temporaires. Sur le serveur de sorte que vous pouvez facilement identifier les différentes sessions des fichiers temporaires.


classe CGI :: Session

CGI :: Session de maintenir un état persistant de l'utilisateur et l'environnement CGI. Session en mémoire peut aussi être sur le disque dur.

Les méthodes de classe

Ruby classe Class CGI :: Session fournit un moyen simple de créer session:

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

CGI permettent une nouvelle session et retourne l'objet CGI :: Session correspondante. Les options peuvent être hachage en option, qui peut être les valeurs suivantes:

  • session_key: Sauvegarder les clés de session par _session_id par défaut.
  • session_id: ID de session unique.généré automatiquement
  • new_session: Si vous créez une nouvelle session id pour la session en cours est vrai.Si elle est fausse, en utilisant l'identité de la session existante. En cas d'omission, le cas échéant, utiliser une session existante, ou la création d'un nouveau.
  • database_manager: Save sessions pour les classes, peuvent être CGI :: Session :: FileStore ou CGI :: Session :: MemoryStore.La valeur par défaut est FileStore.
  • tmpdir: Pour FileStore, un répertoire session de stockage de défaut.
  • prefix: Pour FileStore, un préfixe de fichier de session.

Des exemples de procédés

Non. Méthode description
1 []
Renvoie la valeur de la clé. Voir les exemples.
2 [] =
Définit la valeur de clé donnée. Voir les exemples.
3 effacer
méthode Delete appelle la gestion de la base de données sous-jacente. Pour FileStore, supprimez le fichier physique qui contient la session. Pour MemoryStore, supprimer les données de session de la mémoire.
4 mettre à jour
Appelez la méthode de mise à jour de la gestion de base de données sous-jacente. Pour FileStore, la session est écrit sur le disque. Pour MemoryStore aucun effet.