contact

 C'est un compteur de visiteurs uniques pour un laps de temps donné, j'ai trouvé ce code sur la Toile mais j'ai voulu l'améliorer en apportant quelques corrections, des tests, et une image. Tout d'abord la variable Apache $_SERVER["REMOTE_ADDR"] contient l'adresse IP de l'internaute qui a demandé la page, et avec un test et la fonction mkdir ( ) on crée le répertoire  "mesip".
 On crée une fonction PlusUn ( ), on teste l'existence du fichier "compteur.txt". S'il n'existe pas on l'ouvre en écriture et on le crée (w), on écrit 0 puis on le ferme. S'il existe on ouvre notre fichier en lecture et écriture (r+), on lit la première ligne fgets ( ), on incrémente le compteur d'une unité, on revient au début du fichier fseek ( ), on écrit la nouvelle valeur et on le ferme. Vient ensuite l'image qui intègre la variable $nbrevisites.
 Après cette fonction on teste l'existence du cache. S'il n'existe pas on l'ouvre en écriture et on le crée (w), de ce fait l'adresse IP est ajouté au nom du fichier (compteur_cache) avec le .txt à la fin, alors on écrit le timestamp dans ce même fichier, on le ferme et on appelle notre fonction qui incrémentera une visite. S'il existe on ouvre notre fichier en lecture et écriture (r+), on lit la première ligne fgets ( ) et donc le timestamp, si cette dernière visite + 24h00 est inférieure au time ( ) présent, on revient au début du fichier fseek ( ), on écrit la nouvelle valeur time ( ), on appelle notre fonction qui incrémentera une visite et on ferme le fichier. L'image se trouvant dans la fonction,  il n'y aura pas d'incrémentation mais pas d'image non plus au-dessous de 24h00.
  Il nous faut rappeler l'image pendant les 24h00 où il n'y aura pas d'incrémentation. On ouvre le fichier "compteur.txt" en lecture seule (r), on lit la première ligne fgets ( ), puis on le ferme. Et vient notre image qui intègre la valeur courante de la variable $nbrevisites.

<?php

$DossierCache = "mesip/compteur_cache";

$AdresseIP = $_SERVER["REMOTE_ADDR"];

if(!file_exists("mesip")) {
mkdir("mesip");
}

function PlusUn() {
if(!file_exists("compteur.txt")) {
$fp = fopen("compteur.txt","w");
fwrite($fp,"0");
fclose($fp);
}
$FichierCompteur = fopen("compteur.txt", "r+");
$nbrevisites = fgets($FichierCompteur,7);
$nbrevisites++;
fseek($FichierCompteur, 0);
fwrite($FichierCompteur,$nbrevisites);
fclose($FichierCompteur);
header ("Content-type: image/png");
$nbrevisites = str_pad($nbrevisites, 5, "0", STR_PAD_LEFT);
$image = @Imagecreate (80, 20);
$couleur = ImageColorAllocate ($image, 0, 0, 153);
$couleurs = ImageColorAllocate ($image, 255, 255, 255);
$font = 'Digital.ttf';
Imagettftext ($image, 15, 0, 1, 17, $couleurs, $font, $nbrevisites);
ImagePng ($image);
}

if(!file_exists($DossierCache.$AdresseIP.".txt")) {
$FichierCache = fopen($DossierCache.$AdresseIP.".txt", "w");
fwrite($FichierCache, time());
fclose($FichierCache);
PlusUn();
} else {
$FichierCache = fopen($DossierCache.$AdresseIP.".txt", "r+");
$DerniereVisite = fgets($FichierCache);
if($DerniereVisite+86400<time()) {
fseek($FichierCache, 0);
fwrite($FichierCache, time());
PlusUn();
}
fclose($FichierCache);
$FichierCompteur = fopen("compteur.txt", "r");
$nbrevisites = fgets($FichierCompteur,7);
fclose($FichierCompteur);
header ("Content-type: image/png");
$nbrevisites = str_pad($nbrevisites, 5, "0", STR_PAD_LEFT);
$image = @Imagecreate (80, 20);
$couleur = ImageColorAllocate ($image, 0, 0, 153);
$couleurs = ImageColorAllocate ($image, 255, 255, 255);
$font = 'Digital.ttf';
Imagettftext ($image, 15, 0, 1, 17, $couleurs, $font, $nbrevisites);
ImagePng ($image);
}

?>
accueil HTML 4.01 valideCode CSS valide

cooltext.com

php france

le blog de philippe Moga

Le livre Pour croire sans l'Église

made with Nvu

philippemoga.free.fr


date