Projet Webmaster PHP
Portail PHP




Script Visiteurs connectés

 
  
 

Comment afficher sur un site web le nombre de visiteurs qui sont connectés

Ci-dessous un script permettant de compter le nombre de visiteurs connectés au site.

Ce script n'utilise pas de base de données, mais un fichier texte.

Le principe est de stocker dans un fichier les adresses IP des visiteurs, et de compter le nombre de lignes.
Il nécessite PHP et ne peut donc pas être utilisé pour un site web statique en html.

<?php
// ------------------------------------------------------------------------- //
// Compteur de connectés //
// ------------------------------------------------------------------------- //
// Auteur: Merckel Loïc //
// Web: https://www.merckel.org/spip //
// ------------------------------------------------------------------------- //

/*
Ce script permet de connaître le nombre de visiteurs connectés sur une période
de temps donnée (i.e. permet de savoir combien il y a de visiteurs en ligne).
Ce script n'utilise pas de base de données. Il stocke les informations dans un
fichier .dat */

// $time est le temps en seconde à partir duquel on considère que
// le visiteur n'est plus connecté

// $text_color est la couleur d'affichage du compteur

// $filename est le nom du fichier créé pour stocker les informations

function nb_visiteurs_connecte($time,$text_color,$filename="data.dat")
{
$ip = getenv("REMOTE_ADDR");
$date=time();

$i=0;
$ii=0;
$bool=0;

if(file_exists($filename))
{
if($fichier=fopen($filename,"r"))
{
while(!feof($fichier))
{
$ligne=fgets($fichier,4096);
$tab=explode("|",$ligne);

if($tab[1]>0)
{
$tab_de_tab[$i][0]=$tab[0];
$tab_de_tab[$i][1]=$tab[1];

$i++;
}
}
fclose($fichier);
}
}

for($j=0;$j<$i;$j++)
{
if(($date-chop($tab_de_tab[$j][1]))>$time)
{
//on ne fait rien
}
else
{
$tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
$tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
$ii++;
}
}

for($j=0;$j<$ii;$j++)
{
if($tab_de_tab_actualise[$j][0]==$ip)
{
$bool=1;
}
}

if($bool==0)
{
$tab_de_tab_actualise[$ii][0]=$ip;
$tab_de_tab_actualise[$ii][1]=$date;
$ii++;
}

if($fichier=fopen($filename,"w"))
{
for($j=0;$j<$ii;$j++)
{
fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
fputs($fichier,"|");
fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
fputs($fichier,"\n");
}

fclose($fichier);
}

echo "<font color=\"",$text_color,"\"><b>",$ii,"</b>
<a href=\"https://phortail.org/scripts/script-visiteurs-connectes-0025.html\">visiteurs connectés</font>";
}

// vous pouvez changer les paramètres suivant (attention le temps est en
// secondes - 600 ici)

nb_visiteurs_connecte(600,"blue");

?>

Vous pouvez mettre ce script dans un fichier connectes.php et ensuite faire un include
<?php
include ($DOCUMENT_ROOT."/connectes.php");
?>