Affichage des connectés v 1.1

Contenu du snippet

Voila, un petit sscript d'affichage des conenctés tout con...

Il y a 2 modes : affichage des visiteurs et affichage des membres et des visiteurs conenctes.

Il faut ajouter la base MySql et modifier les parametres pr la connection a la base de données.

Source / Exemple :


<?
// Auteur : Emmanuel Bouillon
// emmanuel@ti-progs.com
// http://www.ti-progs.com/

//Tables necessaire au script :
mysql_query("CREATE TABLE IF NOT EXISTS connectes (
  id int(11) NOT NULL auto_increment,
  ip varchar(15) NOT NULL default '',
  time int(11) NOT NULL default '0',
  membre varchar(30) NOT NULL default '',
  KEY id (id)
) TYPE=MyISAM;") ;

mysql_query("CREATE TABLE IF NOT EXISTS `visiteurs` (
             `id` INT NOT NULL AUTO_INCREMENT, 
             `date` VARCHAR(10) NOT NULL, 
             `nbr` INT NOT NULL,
             INDEX (`id`)
             ) TYPE=MyISAM;") ;

//Pour activer le mode "membres", il suffit de mettre $membre=1; et que les memrbes qui passsent
//sur votre page aient (dans un cookie, par exemple) leur pseudo ou autre chose (du moment que la
//valeur est différente de "")

$membre=1;

// Parametres de conenction a la base de données
mysql_connect("localhost","root","") or die("Impossible de se connecter au serveur.");
mysql_selectdb("table") or die("Impossible de se connecter à la base de donnée.");

// reglez la variable $temps sur la durée moyenne d'un visiteur sur votre page
$temps=5*60;
$time= time();
$time2=time()-$temps;
$date=date("d/m/Y");

 $requete= mysql_query("DELETE FROM `connectes` WHERE `membre`=deleted");
 
 if (!$pseudo=="") { $requete= mysql_query("DELETE FROM `connectes` WHERE `membre`=\"$pseudo\" and `time`<$time2"); }

 $date = date("d/m/Y");
 $requete=mysql_query("select * from visiteurs where date=\"$date\"") ;
 $ligne = mysql_fetch_object($requete);

$result = mysql_query("SELECT COUNT(id) FROM `connectes` WHERE `ip`=\"$REMOTE_ADDR\" and `time`>=\"$time2\"");
$nb = mysql_fetch_row($result); 
$nb = $nb[0] ;

if ($nb==0) {
  $requete = mysql_query("INSERT INTO `connectes` values ('',\"$REMOTE_ADDR\",\"$time\",\"$pseudo\")");
  $requete = mysql_query("SELECT COUNT(id) FROM `visiteurs` WHERE `date`=\"$date\"");
  $nb = mysql_fetch_row($requete); 
    $nb = $nb[0] ;
    if ($nb==0) {
      $requete = mysql_query("INSERT INTO `visiteurs` values ('',\"$date\",'1')");
    } else {
     $requete = mysql_query("SELECT * FROM `visiteurs` WHERE `date`=\"$date\"");
     $ligne = mysql_fetch_object($requete) ;
     $nbr=$ligne->nbr ;
     $nbr++;
     $requete= mysql_query("UPDATE `visiteurs` SET nbr=\"$nbr\" WHERE `date`=\"$date\"");
    }
} else {
  $result = mysql_query("SELECT * FROM `connectes` WHERE `ip`=\"$REMOTE_ADDR\" and `time`>=\"$time2\"");
  $v = mysql_fetch_object($result);
  $ide=$v->id;
  $requete= mysql_query("UPDATE `connectes` SET time=$time WHERE `connectes`.`id`=$ide");
}

if ($membre==0) {
  $result = mysql_query("SELECT COUNT(id) FROM `connectes` WHERE `time`>=\"$time2\"");
    $nb = mysql_fetch_row($result); 
    $nb = $nb[0] ;
    if ($nb<2) {
      echo "<B>$nb</B> visiteur sur le site";
    } else {
      echo "<B>$nb</B> visiteurs sur le site";
    }
} else {
  $result = mysql_query("SELECT COUNT(id) FROM `connectes` WHERE `time`>=\"$time2\" and `membre`=\"\"");
    $nbv = mysql_fetch_row($result); 
    $nbv = $nbv[0] ;
  $result = mysql_query("SELECT COUNT(id) FROM `connectes` WHERE `time`>=\"$time2\" and `membre`<>\"\"");
    $nbm = mysql_fetch_row($result); 
    $nbm = $nbm[0] ;
    
    if ($nbm<2) {
      echo "<B>$nbm</B> membre et ";
    } else {
      echo "<B>$nbm</B> membres et ";
    }
    
    if ($nbv<2) {
      echo "<B>$nbv</B> visiteur sur le site";
    } else {
      echo "<B>$nbv</B> visiteurs sur le site";
    }
    
}

$requete = mysql_query("SELECT * FROM `visiteurs` WHERE `date`=\"$date\"");
     $ligne = mysql_fetch_object($requete) ;
     $nbr=$ligne->nbr ;

echo "<BR><B>$nbr</B> visites aujourd'hui";

?>

Conclusion :


Maintenant, auto-ajout des tables necessaires :)

Si vous faites :
$requete=mysql_query("SELECT * FROM `connectes` WHERE `connectes`.`membre`<>'' and `connectes`.`time`>=\"$time2\"");
while ($ligne = mysql_fetch_object($requete)) {
$requete2=mysql_query("SELECT * FROM `users` WHERE `users`.`pseudo`=\"$ligne->membre\"");
$user = mysql_fetch_object($requete2);
ligne->membre<BR>";
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.