Affichage des connectés v 1.1

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 503 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

Messages postés
98
Date d'inscription
mardi 1 janvier 2002
Statut
Membre
Dernière intervention
12 février 2008

En fait, le deuxième script sert à afficher les membres connectés.

Si tu n'as pas de système de membre, ce n'est pas utile et tu devrais pouvoir te contenter de la première partie ;-)
Messages postés
36
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
23 janvier 2019

désoler je débute , comment sa la table user , sinon toujours erreur quand je veux importer ou exécuter le fichier sql ci dessus , car mi ce que je veux , c'est le nombre en ligne de visiteur , le nombres de membres inscrit , et ci possible le nombre de membres connecter

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete=mysql_query("SELECT * FROM `connectes` WHERE `connectes`.`membre`!='' a' at line 1
Messages postés
98
Date d'inscription
mardi 1 janvier 2002
Statut
Membre
Dernière intervention
12 février 2008

Non : tu converti "<" en ">" au lien de "<" ;-)

Par contre, je ne comprends plus mon code, je pense qu'il y a une erreur... Ca ne doit pas etre

`connectes`.`membre`<>''
mais
`connectes`.`membre`!=''

Bon, voici le code repris et - a priori - corrigé (y'avait d'autres erreurs)

$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);
echo $ligne->membre."
";
}

par contre, il faut la table "users" ^^
Messages postés
36
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
23 janvier 2019

car maintenant sa me donne ce message

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$requete=mysql_query("SELECT * FROM `connectes` WHERE `connectes`.`membre`<>;'' ' at line 1
Messages postés
36
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
23 janvier 2019

hé oui y faut s'attendre a tout , donc après remplacement cela doit donner ceci , non

$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>;";
}
Afficher les 13 commentaires

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.