Compter le nombre de visiteur sur un site avec php
fijou12
Messages postés16Date d'inscriptionmercredi 25 août 2010StatutMembreDernière intervention 7 septembre 2020
-
10 oct. 2010 à 12:48
fijou12
Messages postés16Date d'inscriptionmercredi 25 août 2010StatutMembreDernière intervention 7 septembre 2020
-
14 oct. 2010 à 10:39
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
A voir également:
Nombre de visite d un site internet
Calculer le nombre de visiteur d un site - Meilleures réponses
Nombre de visite site internet - Meilleures réponses
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 10 oct. 2010 à 13:39
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 ...
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 14 oct. 2010 à 01:27
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...
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 14 oct. 2010 à 09:43
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...