Compter le nombre de visiteur sur un site avec php

Signaler
Messages postés
15
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
18 juin 2013
-
Messages postés
15
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
18 juin 2013
-
bonjour,
j'ai un probleme au niveau d'un programme qui calcule le nombre de vvisiteurs sur un site , bob le programme marche tres bien et il calcule le nombre de visiteurs, mais a chaque fois que j'actualise la page le nombre s'incrémente: le programme est le suivant<?php
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites++;
fseek($fp,0);
fputs($fp,$nbvisites);
fclose($fp);
print("$nbvisites visiteurs");?>
je veux pas que le nombre s'incremente qu'apres la deconnexion
aidez moi svp si urgent

4 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

aidez moi svp si urgent

Si c'est urgent tu n'es sans doute pas au bon endroit.

je veux pas que le nombre s'incremente qu'apres la deconnexion

Tout cela ne me semble pas très clair.
Peux tu préciser ?

Le calcul d'un nombre de visiteurs reste à l'appréciation du webmaster, autrement dit ça ne vaut pas grand chose :
visiteurs uniques basés sur les cookies, sur l'ip, incrémentation du compteur selon un temps d'inactivité, etc ...


Cordialement,

Kohntark -
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
3
Une première amélioration pourrait consister à utiliser les sessions (voir ce mot dans la documentation) de manière à n'incrémenter le compteur que lors de la première ouverture de page d'un utilisateur.

Pour faire bref, les sessions sont gérées automatiquement avec un session_start() en première ligne, elles sont closes lors de la fermeture du navigateur client ou après dépassement d'un délai généralement fixé à 24 minutes ou 1440 secondes voir la valeur de session.gc_maxlifetime dans le phpinfo).

Alors le programme pourrait être modifié comme suit :
<?php
// Ouverture ou récupération de la session
session_start();
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
// Incrémentation du compteur si la 
// variable (de session) 'ouverture' n'existe pas
if (empty($_SESSION['ouverture'])) $nbvisites++;
// Sinon création de cette variable
else $_SESSION['ouverture']='oui';
fseek($fp,0);
fputs($fp,$nbvisites);
fclose($fp);
// Écriture du nombre de visites
print("$nbvisites visiteurs");?> 

Alors les visiteurs ne seraient enregistrés que lors de la première ouverture de cette page...

Ensuite, on pourrait envisager d'enregistrer les adresses IP des visiteurs ou faire comme Google Analytics qui, à partir d'un script, établit des rapports très documentés sur la fréquentation d'un site...
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
3
Mille excuses ! J'ai fait une erreur.

Le else est de trop, il faut définir la variable de session dès la première fois, sinon elle n'est jamais définie et la situation reste inchangée...

Cette définition pourrait même être regroupée dans une accolade avec l'incrémentation du compteur pour n'être effectuée qu'une fois.

Quant au webmaster, un terme plus francophone serait, me semble-t-il, plus approprié, je propose Maître-toile pour me ranger aussitôt dans la première catégorie des apprentis, avant les compagnons, puis Maîtres-toile à part entière...
Messages postés
15
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
18 juin 2013

merci beaucoup pour votre aide, votre programme m'a bcp servi. passez une bonne journée