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 :
Code PHP :
<?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...