» Nombre Connectés

Rédigé par : Guillaume
Le : 09/05/2003 à 21:52
Hits : 7665
TéléchargerImprimer
Un petit script pour afficher le nombre de personnes connectées en Live sur votre site.
- Vous pouvez configurer le temps que vous pensez qu'ils restent connectés
- Les textes s'affichent au singulier ou au pluriel suivant le nombre de connectés.
- Vous pouvez soit mettre le code directement dans votre page ou bien faire un include().

article_9.php
<?php
// ------------------------------------------------------------------------- //
// Nombre Connectés                                                          //
// ------------------------------------------------------------------------- //
// Le 09/05/2003 à 21h52 par Guillaume JIGUEL (guillaume@gphp.net)           //
// ------------------------------------------------------------------------- //
// http://www.gphp.net/articles,9.php                                        //
// ------------------------------------------------------------------------- //

// Connexion à votre db 
function connect_db(){ 
   global 
$db$host$login$pass$base
       
$db mysql_connect($host$login$pass); 
       
mysql_select_db($base$db); 
}

$host "localhost"
$login "root"
$pass ""
$base "test"

connect_db(); 

// Temps d'une personne connectée, 120 sec = 2 min
$time_connectes 120;
$texte "personne connectée";

// On configure l'heure et l'ip de la personne qui se connecte à la page
$time date("U");
$ip getenv("REMOTE_ADDR");

// On fait une requete pour vérifier si l'ip est déja connecté
$query "SELECT ip, time FROM connectes WHERE ip='$ip'";
$result mysql_query($query$db);
$nombre_connectes mysql_num_rows($result);

// Si l'ip est déja connecté, on update time
if ($nombre_connectes){
    
$query "UPDATE connectes SET time='$time' WHERE ip='$ip'";
    
$result mysql_query($query$db);
// Sinon on insert l'ip au temps time
}else{
    
$query "INSERT INTO connectes (ip, time) VALUES ('$ip', '$time')";
    
$result mysql_query($query$db);
}

// On défini le temps maximum avant l'update ou le delete
$time_max $time $time_connectes;

// On delete l'ip si time < temps maximum
$query_del "DELETE FROM connectes WHERE time < '$time_max'";
$result_del mysql_query($query_del$db);

// On refais une requete pour afficher le nombre de connectes
$query_sel "SELECT ip, time FROM connectes";
$result_sel mysql_query($query_sel$db);
$nombre_connectes mysql_num_rows($result_sel);

// on configure le singulier du pluriel en mettant le texte dans un array et en lui ajoutant un s si le nombre de connectes est > 1
$texte_pluriel explode(" "$texte);

if (
$nombre_connectes == 1){
    echo 
$nombre_connectes." ".
    
$texte;
}else{
    echo 
$nombre_connectes." ";
    foreach ( 
$texte_pluriel as $texte_affiche ) { 
        echo 
$texte_affiche."s "
    }
}

// On ferme la db
mysql_close();
?>

article_9.sql
## ------------------------------------------------------------------------- ##
## Nombre Connectés                                                          ##
## ------------------------------------------------------------------------- ##
## Le 09/05/2003 à 21h52 par Guillaume JIGUEL (guillaume@gphp.net)           ##
## ------------------------------------------------------------------------- ##
## http://www.gphp.net/articles,9.php                                        ##
## ------------------------------------------------------------------------- ##

CREATE TABLE connectes (
  ip varchar(255) NOT NULL default '',
  time bigint(20) NOT NULL default '0'
);

» Commentaires

Pas de commentaires.

Vous devez être connecté en tant que Membre pour pouvoir poster un commentaire, Inscrivez vous ici !