Compteur PHP - Comment ne pas compter plusieurs fois la même connectio

Compteur PHP - Comment ne pas compter plusieurs fois la même connectio - PHP - Programmation

Marsh Posté le 20-11-2003 à 21:40:22    

Je suis un p'tit nouveau en ce qui concerne le PHP.
J'ai utilisé ce code pour me faire un compteur de visite sur mon site.
 
<?
 //Chemin complet et Nom du fichier à ouvrir
 $fichier3 = "compteurs/compteur-accueil";
 //On ouvre le fichier en lecture et en écriture
 $fp3 = fopen("$fichier3","r+" );
 //On recupère le nombre de visites dans le fichier
 $nbvisites3 = fgets($fp3,11);
 //On incrémente le nombre de visites
 $nbvisites3 = $nbvisites3 + 1;  
 //On se place en début de fichier
 fseek($fp3,0);
 //On écrit dans le fichier
 fputs($fp3,$nbvisites3);
 //On ferme le fichier
 fclose($fp3);
 //On affiche le nombre de visistes
 echo $nbvisites3;
?>

J'ai placé ce code sur la page d'accueil. Le problème c'est que si quelqu'un se connecte sur mon site, le compteur s'incrémente de 1, qu'il va sur une autre page et qu'il revient sur l'accueil, le compteur s'incrémente encore de 1.  En fait a chaque fois que quelqu'un revient sur l'accueil le compteur s'incrémente.
 
Ma question : Comment faire pour ne compter la connection qu'une seule fois ?
 
Puis, dans le même style. Je me connecte sur mon site régulièrement pour vérifier si mes mises à jour sont correctes.
Comment faire pour éviter que mon compteur ne s'incrémente quand JE me connecte, sachant que j'ai une IP fixe ?


Message édité par Mams le 20-11-2003 à 21:41:48

---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 20-11-2003 à 21:40:22   

Reply

Marsh Posté le 20-11-2003 à 22:55:05    

il te suffit de récupérer l'IP ($_SERVER['REMOTE_ADDR']) de l'utilisateur  
apres tu verifie si cette ip est pas deja ds ton compteur
dc c'est valable pr une journée si le gars a une ip dynamique
dans ce cas tu utilise un cookie si le client l'accepte, où tu stocke simplement une variable du genre dejapasse=true, de cetta facon à chaque visite sur ta page tu verifie si le cookie existe et tu n'incrémente po le nb de visites
 
 
 

Reply

Marsh Posté le 20-11-2003 à 23:23:31    

Pour ma part, j'ai fait un compteur "biaisé" ne comptant que les gens acceptant les cookies et visitant deux pages du site. Le gars arrive, je lis le cookie avec l'info concernant l'horodateur, s'il n'y en a pas, je lui envoie avec l'heure actuelle + le flag pas compté, s'il en a un qui date d'hier, je lui envoie l'heure actuelle plus le flag compté, et je le compte comme visiteur. Enfin, s'il en a un qui date d'ajd, je vérifie si son flag compté est vrai, si oui, je lui renvoie l'heure actuelle sinon je lui renvoie l'heure + le flag compté et je le compte. Le fait de renvoyer comme ça l'heure permet de compter en plus les visites.  

Reply

Marsh Posté le 23-11-2003 à 18:59:17    

sPiKe a écrit :

il te suffit de récupérer l'IP ($_SERVER['REMOTE_ADDR']) de l'utilisateur  
apres tu verifie si cette ip est pas deja ds ton compteur
dc c'est valable pr une journée si le gars a une ip dynamique
dans ce cas tu utilise un cookie si le client l'accepte, où tu stocke simplement une variable du genre dejapasse=true, de cetta facon à chaque visite sur ta page tu verifie si le cookie existe et tu n'incrémente po le nb de visites


 
Ok, j'ai bien compris le principe. Mais pour le code j'avoue que je suis un peu paumé  :(  
 
 
 
Un p'tit coup de main SVP  :D


---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 23-11-2003 à 19:03:07    

C'est mieux de faire ca par le numero de session car par l'ip il se peut que des utilisateurs ai la meme (LAN, proxy de leur isp...)
 
ca change pas gd chose au code, et t sur a 100% d'avoir un num unique par internaute.
 
a+


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 23-11-2003 à 20:10:23    

_Maximus_ a écrit :

C'est mieux de faire ca par le numero de session car par l'ip il se peut que des utilisateurs ai la meme (LAN, proxy de leur isp...)
 
ca change pas gd chose au code, et t sur a 100% d'avoir un num unique par internaute.
 
a+


 
+1

Reply

Marsh Posté le 23-11-2003 à 23:09:05    

Pourquoi ne pas regarder l'adresse de la page précédante?
Si le gas vient d'une autre page du site alors c'est toujours la même visite et si il vient d'ailleur, c'est une nouvelle visite.
Si on rajoute un cookie, on peut aussi considéré que c'est la même  visite s'il vient de l'extérieur mais que la date-heure contenu dans le cookie est assez récente. ;)
 
Ca serait pas plus précis comme système?

Reply

Marsh Posté le 24-11-2003 à 20:21:53    

omega2 a écrit :

Pourquoi ne pas regarder l'adresse de la page précédante?
Si le gas vient d'une autre page du site alors c'est toujours la même visite et si il vient d'ailleur, c'est une nouvelle visite.
Si on rajoute un cookie, on peut aussi considéré que c'est la même  visite s'il vient de l'extérieur mais que la date-heure contenu dans le cookie est assez récente. ;)
 
Ca serait pas plus précis comme système?


 
Ca me parait cool tout ça ! Vous n'auriez pas un p'tit bout de code ?  :D


---------------
Je me lève de bonne humeur
Reply

Marsh Posté le 24-11-2003 à 20:25:22    

Mams a écrit :


 
Ca me parait cool tout ça ! Vous n'auriez pas un p'tit bout de code ?  :D  


 
non.

Reply

Marsh Posté le 25-11-2003 à 22:38:00    


 
 [:rofl]  
 


---------------
Ptit con de goret je t'emmerde ^_^
Reply

Marsh Posté le 25-11-2003 à 22:38:00   

Reply

Marsh Posté le 26-11-2003 à 02:02:48    

Mams a écrit :


 
Ca me parait cool tout ça ! Vous n'auriez pas un p'tit bout de code ?  :D  

et oui faut faire fonctionner les meninges de temps en temps, on est la pour l'entraide, mais pas au point de faire le travail pour les autres


Message édité par Profil supprimé le 26-11-2003 à 02:04:31
Reply

Sujets relatifs:

Leave a Replay

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