Compter le temps passé sur un site

Compter le temps passé sur un site - PHP - Programmation

Marsh Posté le 31-03-2009 à 16:12:07    

Bonjour,  
 
J'ai fait un site avec un espace utilisateur pour chaque personne.
Une fois logué avec ses logins/mdp, je crée une session PHP et lui affiche des informations personnalisées.
 
Je voudrais connaître le temps que passe chaque personne sur son espace réservé.
(Ex : untel s'est connecté 3x dans le mois et a passé 14 minutes sur le site, untel 20x et 35minutes, etc.)
 
Je pensais enregistrer dans une base le couple [login] + [n° session] (permet de savoir à qui appartient chaque session), et dans une autre les infos [n° session] + [datetime] + [page vue]  (permet de voir combien de temps a duré la session).
Par recoupements, ces informations me permettraient je pense d'arriver au résultat désiré. Par contre le base va devenir très lourde dans le temps.
 
Avez-vous une meilleure solution et/ou une solution plus courrament utilisée ?
Sinon que pensez-vous de mon idée ?
 
Merci

Reply

Marsh Posté le 31-03-2009 à 16:12:07   

Reply

Marsh Posté le 31-03-2009 à 16:43:35    

bah, tu vide tout les xx jours...
ou alors, si la même IP reviens 2x en + de 24h, tu supprime la première entrée

Reply

Marsh Posté le 31-03-2009 à 18:18:28    

Donc selon toi c'est la bonne solution ce que j'ai prévu ?

Reply

Marsh Posté le 31-03-2009 à 19:31:45    

Tu peux aussi simplement considérer une relation [n° session] + [page] + [temps passé]. Ensuite, une relation [n° session] + [last_page] + [datetime].
 
A chaque fois qu'une page est chargée, tu incrémentes (ou tu insères si c'est neuf) dans la première relation, et tu mets à jour la 2e. Il faut, bien entendu, éviter les cas extrêmes (genre au delà de 5 minutes par page, on peut considérer que la personne est partie faire un tour).  
 
Cela te fait [nombre d'utilisateurs] entrées dans la 2e relation, et [nombre d'utilisateurs]*[nombre de pages] dans la 1ere.
 
Seul "hic" : les gens qui font du multitab :-/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed