Arjuna a écrit :
Euh...
En ASP, on a deux évènements, "Session_OnStart" et "Session_OnEnd".
Une session a un Timeout de 300 secondes (paramètre par défaut, et au pire c'est consultable via une proprio)
Ainsi, dans "Session_OnStart" on crée une ligne dans la BDD avec l'heure et un ID (le SessionID qui est un GUID c'est pas mal).
Et dans le "Session_OnEnd", on n'a plus qu'à faire un update de "heureActuelle - heureDuDébut - 300 secondes" sur l'ID qu'on avait mis en mémoire
Et voilà
Ensuite, il y a toujours le risque du "Session.Abandon" (destruction immédiate et volontaire des sessions) qui peut venir foutre la merde.
Du coup, perso je n'utilise pas le -300. En effet, c'est pas parcequ'une personne a fini de charger la dernière page sur le site qu'elle l'a lue. Du coup je compte que 5 minutes est une durée tout à fait acceptable pour lire une page, et je compte donc ces 300 secondes dans mon compteur.
PS: A noter que la plupart des autres compteurs de stats comptent aussi les 300 secondes.
PS²: Evidement, c'est la solution en ASP. Elle marche en .NET et très certainement en Java, qui ont/doivent avoir un objet Session.
Par contre, en PHP je ne sais pas ce que ça donne. Mais je serais très fortement étonné qu'il n'aie pas un truc qui se lance à la fermeture d'une session.
|