Affichage des connectés v 1.1

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 449 fois - Téléchargée 29 fois

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

Ajouter un commentaire

Commentaires

cs_Dean
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004
-
pas mal
Un truc qui aurait été sympa (pour améliorer le script) : créer la table automatiquement si celle-ci n'existe pas.
DuncanIdaho
Messages postés
98
Date d'inscription
mardi 1 janvier 2002
Statut
Membre
Dernière intervention
12 février 2008
-
Oué, pk pas
je le ferais qd j'aurais le tps :)
Tomcube
Messages postés
312
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
14 septembre 2004
1 -
J'ai vite survolé le script mais je voudrais avoir des précisions sur son fonctionnement. Comment savoir quand un visiteur quitte le site ?? Est-ce qu'a chaque fois que le visiteur change de page sur le site, ça rajoute du "temps passé" sur le site ??
C'est un module qui m'interesse beaucoup pour la nouvelle version d'un site qui est en préparation.
DuncanIdaho
Messages postés
98
Date d'inscription
mardi 1 janvier 2002
Statut
Membre
Dernière intervention
12 février 2008
-
Un visiteur quitte le site quand (pour le script) il n'a pas vu de page depuis 5 min

Quiand un visiteur change de page, le temps est mis a jour, c tout :/

@++
lastwhirlwind
Messages postés
5
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
28 octobre 2003
-
ca m'a l'air bien
pour l'instant pas de bugs du bon boulot ;)

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.