le 21/01/2006 à 14:12
universdupc
Salut !
Voilà j'ai mis au point un conteur, qui permet de comptabiliser les membres connectés, les visiteurs et le total de personnes connectés.
J'aimerais bien améloirer ce script en y ajoutant, une liste concernant les membres connectés. C'est-à-dire que si il y a un membre connecté alors on affiche ces infos dans une pages nommée par exemple list_membres_connectes.
Mais je vois pas tro pcomment faire cela. Auriez-vous une idée ?
Voici mon code déjà effectué :
Page connectes pour l'enregistrement des ip
Page pour le traitement de l'affichage :
Voilà j'ai mis au point un conteur, qui permet de comptabiliser les membres connectés, les visiteurs et le total de personnes connectés.
J'aimerais bien améloirer ce script en y ajoutant, une liste concernant les membres connectés. C'est-à-dire que si il y a un membre connecté alors on affiche ces infos dans une pages nommée par exemple list_membres_connectes.
Mais je vois pas tro pcomment faire cela. Auriez-vous une idée ?
Voici mon code déjà effectué :
Page connectes pour l'enregistrement des ip
<?php
//------------------------------
//PARAMETRES DE CONNEXION
//------------------------------
$hote='localhost';
$user='root';
$passe='';
$base='bdd';
$limite_temps=240; //4 minutes
//------------------------------------------------------------------------
//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].$i[2];
//--------------------------------------------------
//TEMPS ET LIMITE DE REACTUALISATION (ICI 4 MINUTES)
//AVANT DE CONSIDERER LE VISITEUR COMME ABSENT
//--------------------------------------------------
$temps=time();
$temps_limite=$temps-$limite_temps;
//SI C'EST UN MEMBRE OU PAS
if(isset($_SESSION['pseudo']))
{
$membre=1;
}
else
{
$membre=0;
}
$connexion=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.",".$membre.")") OR die('<p>Impossible d\'effectuer la requête</p>');
?>
Page pour le traitement de l'affichage :
<?php
$hote='localhost';
$user='root';
$passe='';
$base='bdd';
$connexion=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>');
$req1=mysql_query('SELECT membre FROM connectes') OR die('<p>Impossible d\'effectuer la requête</p>');
mysql_close($connexion) OR die('<p>Erreur de fermeture de la base</p>');
$nb_connectes=0;
$nb_membres=0;
$nb_total=0;
while($r=mysql_fetch_row($req1))
{
$nb_connectes++;
if($r[0]==='1')
{
// on retir si c'est un visiteur et on met en membre
$nb_connectes = ($nb_connectes - 1);
$nb_membres++;
}
}
// conteur total
$nb_total = ($nb_connectes + $nb_membres);
// Condition qui permet de gérer l'affichage pluriel singulier
if($nb_connectes <= "1" && $nb_membres <= "1"){
echo ' membre en ligne ',$nb_membres,'<br>visiteur en ligne ',$nb_connectes,'<br>Total en ligne ',$nb_total,'<br>';
}
elseif($nb_connectes > "1" && $nb_membres > "1"){
echo ' membres en ligne ',$nb_membres,'<br>visiteurs en ligne ',$nb_connectes,'<br>Total en ligne ',$nb_total,'<br>';
}
elseif($nb_connectes <= "1" && $nb_membres > "1"){
echo ' membres en ligne ',$nb_membres,'<br>visiteur en ligne ',$nb_connectes,'<br>Total en ligne ',$nb_total,'<br>';
}
elseif($nb_connectes > "1" && $nb_membres <= "1"){
echo ' membre en ligne ',$nb_membres,'<br>visiteurs en ligne ',$nb_connectes,'<br>Total en ligne ',$nb_total,'<br>';
}
elseif($nb_connectes > "1" && $nb_membres > "1"){
echo ' membres en ligne ',$nb_membres,'<br>visiteurs en ligne ',$nb_connectes,'<br>Total en ligne ',$nb_total,'<br>';
}
?>