PDA

Afficher la version complète : [Réglé] Qui est en ligne !!!



adminlinux
30/04/2006, 19h27
Bonjour, fin bonsoir,

J'éssaye d'apliquer un scripte qui compte le nombre de visiteur sur le site, le problème est que il prand l'ip de mon serveur, donc quand on surf avec 3 pc du réseaux sur le site il indique 1 utilisateur et pas 3.

Voici mon code....


<?php
function nb_visiteurs_connecte($time,$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)
{
}
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 "",$ii," visiteurs connectés";
}
nb_visiteurs_connecte(300,"data.dat");
?>

Merci pour votre aide.

adminlinux
30/04/2006, 20h34
Voila, j'ai trouvé....

fallais rajouter quelque ligne.... http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
$ip = $_SERVER['HTTP_CLIENT_IP'];
else
$ip = $_SERVER['REMOTE_ADDR'];