cs_phoenyx
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 8 mars 2007
-
24 juin 2003 à 12:57
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013
-
24 juin 2003 à 14:57
Boujour à tous,
j'aimerais savoir comment marche les variables de session.
comment le serveur sait que ces variables de session sont à tel client plutot qu'à un autre ?
- Le SessionId est-il stocké chez le client ? Comment ?
- Le serveur stocke-t-il des informations sur le client pour faire le lien avec sa session ? Quelles sont ces informations ?
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 juin 2003 à 13:27
Une session commence lorsqu'un utilisateur se connecte à ton application, il existe 2 events de session user et 2 applicative qui te permettent de gérer les sessions.
Session_OnStart S'exécute la première fois qu'un utilisateur utilise une page de votre application
Session_OnEnd S'exécute en cas de dépassement du délai de la session d'un utilisateur ou quand celui-ci quitte votre application
Application_OnStart S'exécute une fois lorsque la première page de votre application est utilisée pour la première fois par un utilisateur
Application_OnEnd S'exécute une fois lors de l'arrêt du serveur Web
Ces events doivent être déclaré dans le fichier Global.asa qui doit se trouver à la racine de ton application.
ptit exemple : j'initialise la variable de session de l'utilisateur, ensuite dans chacune de mes pages je fait un test sur l'état de cette variable, si elle vaut 0 c'est que l'utilisateur vient de se connecter, dans ce cas je le redirige vers une page de loggin afin de s'identifier.
Sub Session_OnStart
'initialisation de User_ID
session("User_ID") = 0
End Sub
Sub Session_OnEnd
'Cloture de la session
session("User_ID") = 0
End Sub
Les variables de session restent propre à chaque utilisateur, attention de ne pas trop en abuser car cela prend de la mémoire serveur, le mieux c'est de garder certaines valeurs de base (user_id...) et de stocker le reste dans une table de ta db.
cs_phoenyx
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 8 mars 2007 24 juin 2003 à 14:00
Merci, mais c'était pas ma question, j'ai dû mal m'exprimer.
Je reformule.
Lorsqu'un client se connecte, le serveur lui ouvre une session.
Lors des requêtes suivantes passées par le client au serveur, comment le serveur sait-il à quel client appartient telle session. Il y a bien un lien entre une session et le client auxquel elle appartient.
Je voudrais donc savoir quelle est la nature de ce lien, comment le serveur gère-t-il les sessions ?
- Est-ce le serveur qui garde des infos sur le client pour savoir s'il a la session A ou la session B ? Quelles infos alors (adresse physique,...) ?
- Est-ce le client qui dit au serveur dans chaque requête "j'ai la session X" (ou est-ce stocké ? cookie,...) ?
Bref tout (ou presque) savoir sur ce lien
J'espère avoir été plus clair.
C'est plus une question technique que de programmation.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 juin 2003 à 14:57
le serveur attribue un id : session.sessionID technique pour chaque session, cet id peut etre utilisé mais avec prudence car en cas de reboot ou de crash serveur un ID peut etre réattribué à une autre session, pour le reste faudrait que je replonge dans ma bibliothèque.
Comme tu le dis c'est technique, il s'agit de parametres passé entre le client et le serveur mais qui reste transparent pour les 2.