Bonjour! Hier, j'ai créer mon compteur live, pour qu'il y ai sur ma page: X visiteur(s) connecté(s)!
Le problème, c'est que c'est bisard! Car moi je veux que lorsque quelqu'un est sur le site, et bien que ça rajoute, mais moi hier, vers 3 du matin, j'ai fait un test avec mon cousin, et je me suis connecter, il y avais écrit: 1 visiteur connecté! Impécable! Ensuite, lui il se connecte, j'acctualise, et ça ma mis: 2 visiteurs connectés! IMPECABLE! Mais c'est maintenant le problème! C'est que lui il a quitter la page, ça pendant un bout de temps, ça ma laisser 2 visiteurs connectés! Et ça ne peux pas être une autre personne, puisque mon site je vien de le faire! je l'ai publier hier!
Enfin voila quoi, donc j'ai ce code la:
<?php
//------------------------------
//PARAMETRES DE CONNEXION
//------------------------------
$hote='xxxxxxxxxx';
$user='xxxxxxxxxx';
$passe='xxxxxxxx';
$base='xxxxxxxxx';
$limite_temps=240; //4 minutes //C'est quoi ça?
//------------------------------------------------------------------------
//NE PREND QUE LES TROIS PREMIERES PARTIES DE L'IP
//CECI PERMET D'ETRE PLUS FIABLE POUR LES IP DYNAMIQUES (AOL PAR EXEMPLE)
//------------------------------------------------------------------------
$i=explode('.',$_SERVER['REMOTE_ADDR']);
$ip_client=$i[0]+$i[1]*256+$i[2]*65536;
//--------------------------------------------------
//TEMPS ET LIMITE DE REACTUALISATION (ICI 4 MINUTES)
//AVANT DE CONSIDERER LE VISITEUR COMME ABSENT //Moi je ne veux pas de temps de limite de sais pas trop quoi!
//--------------------------------------------------
$temps=time();
$temps_limite=$temps-$limite_temps;
mysql_connect($hote,$user,$passe) OR die('<p>Erreur de connexion à la base de données</p>');
mysql_select_db($base) OR die('<p>Impossible de sélectionner la base '.$base.'</p>');
mysql_query('DELETE FROM connectes WHERE temps<'.$temps_limite.' OR ip='.$ip_client) OR die('<p>Impossible d\\\'effectuer la requête</p>');
mysql_query('INSERT INTO connectes VALUES('.$ip_client.','.$temps.')') OR die('<p>Impossible d\\\'effectuer la requête</p>');
$req1=mysql_query('SELECT COUNT(*) FROM connectes') OR die('<p>Impossible d\\\'effectuer la requête</p>');
mysql_close() OR die('<p>Erreur de fermeture de la base</p>');
//-----------------------------------
//AFFICHE LE NOMBRE DE CONNECTES
//-----------------------------------
$r=mysql_fetch_row($req1);
if($r[0]>1)
{
$ph=' visiteurs connectés';
}
else
{
$ph=' visiteur connecté';
}
echo '',$r[0],$ph,'';
?>
Et j'ai créer une table de mysql aussi :
CREATE TABLE `connectes` (
`ip` int(9) unsigned NOT NULL default '0',
`temps` int(10) unsigned NOT NULL default '0'
) TYPE=HEAP;
Si jamais quelqu'un a un truc comme ça, mais qui marche bien et qui dit tout simplement le nombre de personne de connecter, et que dès qu'elle ferme la page, qu'elle soit plus compter, je suis pour!
Merci beaucoup