Petit compteur en PHP sans base de données

Je viens de développer un petit compteur de visites en PHP à utiliser sur un site web. Il est très simpliste, sans doute pas très optimisé, n'utilise aucune base de données et ne compte qu'une seule fois la même adresse IP par période de 24 heures.

Son fonctionnement est simple. Vous arrivez sur le site web, on vérifie si un fichier texte dont le nom correspond à votre adresse IP existe déjà. S'il n'existe pas, on le crée et on y insère une valeur de temps. S'il existe, on le lit et on vérifie si la valeur de temps est inférieure de 24 heures au moment présent, puis si oui, on incrémente le compteur et on met à jour ce fichier texte.

Je vous partage les quelques bouts de code dont il est composé et la méthode pour l'installer.

Sur votre serveur FTP, créez, à la racine de votre site web, un fichier compteur.txt contenant le chiffre 0 (rien d'autre). Créez également un dossier compteur_cache.

Dans le fichier de votre page d'accueil (généralement index.php), insérez au tout début:

<?php
// Compteur de visites

$AdresseIP = $_SERVER["REMOTE_ADDR"];
$Racine = "/chemin/complet/sur/le/serveur/";
$DossierCache = "/chemin/complet/sur/le/serveur/compteur_cache/";

function PlusUn() {
	$FichierCompteur = fopen($Racine."compteur.txt", "r+");
	$Avant = fgets($FichierCompteur);
	$Apres = $Avant+1;
	fseek($FichierCompteur, 0);
	fputs($FichierCompteur, $Apres);
	fclose($FichierCompteur);
}

if(!file_exists($DossierCache.$AdresseIP.".txt")) {
	$FichierCache = fopen($DossierCache.$AdresseIP.".txt", "w");
	fseek($FichierCache, 0);
	fputs($FichierCache, time());
	fclose($FichierCache);
	PlusUn();
} else {
	$FichierCache = fopen($DossierCache.$AdresseIP.".txt", "r+");
	$DerniereVisite = fgets($FichierCache);
	if($DerniereVisite+86400<time()) {
		fseek($FichierCache, 0);
		fputs($FichierCache, time());
		PlusUn();
	}
	fclose($FichierCache);
}
?>

Voilà, votre compteur est implémenté. Prenez note que le chemin complet sur le serveur est le chemin depuis la racine du système d'exploitation, et non pas la racine de votre espace web.

Pour suivre l'évolution des visites sur votre site web, on va créer un autre fichier à la racine du site web, appelons-le v.php (mais vous pouvez le nommer comme bon vous semble). Son contenu sera:

<?php
$FichierCompteur = fopen("/chemin/complet/sur/le/serveur/compteur.txt", "r");
$Visites = fgets($FichierCompteur);
fclose($FichierCompteur);
?>
<html>
<head><title>Compteur de visites</title></head>
<body><p><?php echo $Visites; ?> visite(s)</p></body>
</html>

Aussi simple que ça. Si votre site connait un afflux de visiteurs très important, pensez à vider le contenu du dossier compteur_cache de temps à autre puisqu'il contiendra un fichier pour chaque adresse IP étant passée par là. 25 000 visiteurs différents signifie donc 25 000 fichiers.

Utilisez ce code librement, il vous est offert sous license GPL.