identifiant unique => SID : c'est uen première chose
enregistrement dans une table (disont connexions) idmembre + sid + timestamp
lors de l'utilisation du formulaire de connexion tu regarde s'il existe un membre dans cette table.
particularité : il faut que ton timestamp soit inférieur à la date actuelle moins la durée de vie d'une session.
lorsque tu ferme ton navigateur, et que tu garde tes cookie ta session est toujours valide (car basé sur la présence du cookie).
enfin si tu utilise les cookies pour la gestion des session (voir conf de php).
tu peu aussi imaginer une requête ajax qui vient utiliser un fichier php juste pour maintenir la session ouverte et ainsi garder le premier connecté toujours connecté.
tu peux imaginer d'utiliser les web socket pour faire du push vers le clietn si cela ne répond par du nettoie la table de connexion (a faire à la déconnexion aussi). ceci est à prévoir avec une tache qui se déclenche régulièrement.
tu peux aussi blinder coté SGBD avec un trigger, une procédure qui fait le ménage et sera appelée périodiquement (par exemple calé sur la durée de vie d'une session).
Dans tous les cas :
- une identification unique est peu probable en se basant sur le info fournie par le navigateur (car facilement falsifiable).
- A toi de prévoir le cas où l'on laisse la page ouverte toute la nuit (genre pc allumé au bureau et verra demain) et lorsque l'on revient soit la première action déconnecte (avec un beau message d'erreur time out => reco), soit tu applique ma solution du pooling pour garder la session ouverte.
quoiqu'il arrive tu aura toujours la possibilité d'emmerder quelqu'un.
Lais te baser sur le SID (et l'ip) est une bonne solution car peux gens s’amuse à refiler un cookie, et comme tu l'indique tu ne fait pas un truc pour la nasa
Attention au stockage de l'ip c'est soumis a réglementation
@+