Session (gb.web)
Cette classe est utilisée pour gérer les sessions.
Cette classe est statique.
Cette classe se comporte comme un tableau statique en
lecture /
écriture.
Propriétés statiques
CookiePath
|
|
Id
|
Retourne l'identifiant de la session.
|
Keys
|
|
Modified
|
Retourne ou définit si une session a été modifiée, et doit donc être sauvegardée sur le disque.
|
Path
|
Return the session file path.
|
Prefix
|
Retourne ou définit le préfixe identifiant de session.
|
Size
|
Return the session file size.
|
Timeout
|
Retourne ou définit la durée maximale d'une session en secondes.
|
Type
|
Return or set the session type.
|
Unique
|
Retourne ou établit si la session doit être unique.
|
Méthodes statiques
Abandon
|
Abandonne la session actuelle.
|
Exist
|
|
Load
|
Recharge la session depuis le disque.
|
Save
|
Sauvegarde la session sur le disque.
|
Qu’est-ce qu’une session ?
Une session vous permet de conserver la valeur des variables entre deux requêtes HTTP.
Une session est un conteneur semblable à une collection identifié par une chaîne unique retournée par la propriété
Session.Id.
Cet identifiant prend la forme suivante :
<PREFIX>:<KEY>
.
-
<PREFIX>
est le préfixe donné par la propriété Session.Prefix, ou l’adresse du client IP si aucun préfixe n’a été défini.
-
<KEY>
est un nombre hexadécimal aléatoire de 24 chiffres.
Exemple:
10.254.3.151:CFA76E086C00E18CF07A8EC
L'identifiant de session est enregistré dans un cookie nommé 'SESSION' dans le navigateur du client.
Enregistrement de valeurs dans la session
La session peut enregistrer des valeurs associées à des clés de chaînes. Vous pouvez enregistrer autant de valeurs que vous voulez,
mais il y a des restrictions : seuls les types de donnée natives, les tableaux, et les collections peuvent être utilisés.
Le contenu de la session est enregistré dans le fichier suivant :
"/tmp/gambas" &/ System.User.Id &/ "session" &/ Session.Id
La session est automatiquement restaurée au lancement du programme.
Création d'une session
Une nouvelle session est automatiquement créée dès que vous enregistrez une variable de session, et qu'aucune session actuelle existe
(c.a.d. quand
Session.Id est
NULL).
Si vous appelez
Response.Begin trop tôt, la session ne peut pas être créée, du fait que les entêtes HTTP ont déjà été envoyées. Vous avez alors deux solutions :
-
Appeler Response.Begin une fois assuré que la session a été créée.
-
Mettre Response.Buffered à TRUE, de manière à ce que les entêtes soient envoyées quand vous appelez Response.End.
Destruction d'une session
Vous pouvez abandonner une session en utilisant la méthode
Abandon.