Bonjour, voici le script:
<?php
/*
+------------------------------------------------------------------------------------------------------+
| Compteur par appel JavaScript, multivisiteurs (plusieurs IP) |
| insertion du compteur dans le code HTML de la page, par une ligne javascript: |
|<script language="JavaScript" type="text/javascript" src=""fields/compteurvisiteurs.php""></script> |
+------------------------------------------------------------------------------------------------------+
*/
//--- Initialisation de variables (Vous pouvez personnaliser ces variables) ---/
$sgn= 'Compteur v1.0'; // commentaire, 17 caractères
$controldomaine= 'non'; // contrôle le domaine suivant le tableau $Domaines
$Domaines= array(''); // domaines où le compteur est opérationnel
$Ipwebmaster= array(''); // IP qui ne seront pas considérés
$delai= 600; // delai en s pour le considérer comme nouveau
$afficheip= 'non'; // affiche le n°IP du visiteur (oui/non)
$affichenv= 'oui'; // affiche le nombre de visiteurs en cours
$local= 'non'; // est-ce pour tout le site > non, si que la page > oui
$fichiercompteur= 'cptmip.txt'; // fichier de données du compteur
$cmtjs= '---------'; // affichage compteur en cas de PB
//-----------------------------------------------------------------------------/
//
$host= $SERVER['HTTP_HOST']; // nom du domaine du site
if (($controldomaine=='oui') AND (!in_array($host,$Domaines))){
echo('document.write(\'--- non disponible ---\');');
exit; // arrêt du script PHP si le domaine n'est pas permis
}
//
$ipv= $_SERVER['REMOTE_ADDR']; // numéro IP du visiteur
$ipvf= sprintf('%15s',$ipv);
$chrono= sprintf('%10s',time());// date de visite (en secondes)
// le visiteur en cours (excepté pour certaines IP) est considéré par défaut comme "nouveau"
(in_array($ipv,$Ipwebmaster))? $nouveau= 0: $nouveau= 1;
//
$nvpmax= 0;
if (!file_exists($fichiercompteur)) touch($fichiercompteur);
// lecture du fichier de comptage, $n+1 lignes
if ($pf0=fopen($fichiercompteur,'r+')){
$i= 0;
while (!feof($pf0)){
$Ligne[$i++]= fgets($pf0,1024);
}
$n= $i-2; // $n visiteurs dans la liste, la dernière ligne contient $nvpmax
$nvpmax= substr($Ligne[$n+1],1,5); // récupération de $nvpmax
//
// analyse du fichier compteur et traitement
$cmp= substr($Ligne[0],1,8); // récupération du décompte de visiteurs
// récupération des infos sur les $n visiteurs déjà recencés
for ($i=1;$i<=$n;$i++){
$Ipvs[$i]= substr($Ligne[$i],1,15); // IP du visiteur $i
$Chronos[$i]= substr($Ligne[$i],17,10); // date de sa dernière visite
$present[$i]= 1; // le visiteur $i est supposé présent
// si la date du visiteur $i est périmée, il n'est plus considéré présent
if (($chrono-$Chronos[$i])>$delai) $present[$i]= 0;
// si le visiteur $i est le visiteur en cours ET est considéré présent
// alors il n'est pas nouveau et sa date de visite est mise à jour
if (($Ipvs[$i]==$ipvf) AND ($present[$i]==1)){
$nouveau= 0; $Chronos[$i]= $chrono;
}
}
// si le visiteur en cours est toujours considéré comme nouveau,
// il est ajouté à la liste et le compteur est incrémenté
if ($nouveau==1){
$i= ++$n; $cmp++;
$present[$i]= 1; $Ipvs[$i]= $ipvf; $Chronos[$i]= $chrono;
}
// mise à jour du fichier compteur
rewind($pf0); ftruncate($pf0,0);
$cmpf= sprintf('%08s',$cmp);
fwrite($pf0,':'.$cmpf.':'.$sgn.':'.chr(10));
$nvp= 0; // $nvp : nombre de visiteurs en liste, supposés présents
for ($i=1;$i<=$n;$i++){
if ($present[$i]==1){
fwrite($pf0,':'.$Ipvs[$i].':'.$Chronos[$i].':'.chr(10));
$nvp++;
}
}
if ($nvp>$nvpmax) $nvpmax= $nvp;
$nvpmaxf= sprintf('%05s',$nvpmax);
fwrite($pf0,':'.$nvpmaxf.': pointe visites maxi:');
fclose($pf0 );
//
// génération du contenu HTML, chaine $cmtjs
$cmtjs= '<span class="totalvisites"> '.$cmpf.' visiteurs</span>';
if ($afficheip=='oui'){
$cmtjs.= ', <span class="ipvisiteur">votre n°IP est '.$ipv.'</span>';
}
if ($affichenv=='oui'){
$pl=($nvp<=1)? '': 's';
($local=='oui')? $txt= ' sur la page': $txt= ' sur le site';
$cmtjs.= ' - <span class="visitesencours">actuellement '.$nvp.' visiteur'.$pl.$txt.'</span>';
}
if (in_array($ipv,$Ipwebmaster)){
$cmtjs.= ' ( pointe de visites = '.$nvpmax.' 😉';
}
}
// envoi du résultat pour affichage sur la page
echo('document.write(\''.$cmtjs.' \');');
?>
ou trouve t'on cette librairie ?
Cordialement,
Fifi01