Vous êtes ici Codes PHP et MySQL > Inclassable - divers > Afficher le nombre d'invités et le nombres de...

 

Afficher le nombre d'invités et le nombres de membres en ligne

Ce code vous permettra d'afficher une phrase du genre
"13 invités en ligne et 4 membres en ligne : zqsdc, lapinou, phpsources, jef."

Insérez ce code dans un nouveau fichier (online.php par ex.) puis incluez ce fichier sur toutes les pages de votre site (à l'endroit où vous désirez afficher le texte) avec un include_once("online.pgp");

Pour que les membres soient différentiés des simples visiteurs (invité) il faut qu'une variable $membre["pseudo"] soit définie avec l'éxécution du script.
 
mercier133
Site de l'auteur voir
Code vu 581 fois
Enregistré le 26 Mars 2010
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Afficher le nombre d'invités et le nombres de membres en ligne
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Afficher le nombre d'invités et le nombres de membres...  */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts309-MySQL.htm            */
/* Auteur         : mercier133                                                */
/* Date édition   : 26 Mars 2010                                              */
/* Website auteur : http://www.servicesgratis.net                             */
/*                                                                            */
/******************************************************************************/
 
/* 
 * Ce code est inspiré du "HOWTO" de Le PHP Facile 
 * URL du HOWTO :
 * http://www.lephpfacile.com/howto/7-comment-faire-pour-afficher-le-nombre-de-c
onnectes-sur-un-site-en-php
 *
 * J'ai rajouté la partie pour savoir le nombre d'invité en ligne 
 * et le nombre de membre (avec leurs pseudo)
 * Pour pouvoir utiliser cette fonctionnalité, le pseudo du membre doit être
 * préalablement déclarée dans une variable $membre["pseudo"]
 */ 

$tempsMax 180;     
//Temps (en secondes) avant qu'un visiteur soit considéré comme étant "hors
// ligne" 
$now date("U");    // Nombre de secondes écoulées depuis le 1er janvier 1970

$IP $_SERVER['REMOTE_ADDR'];
if(isset($membre["pseudo"])){ 
// Si c'est un membre connecté, on met le pseudo au lieu de l'IP
    $IP $membre["pseudo"];
}

$sql 'SELECT count(*) FROM nbConnectes WHERE IP= "'.$IP.'"';
$req = @mysql_query($sql);
$data = @mysql_fetch_array($req);
@mysql_free_result($req);


if ($data[0]) { //La personne est déjà "connecté" 
    $sql 'UPDATE nbConnectes SET time = "'.$now.'" WHERE IP = "'.$IP.'"';
    $req = @mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.
mysql_error());
}
else { //La personne n'est pas/plus dans la base de donnée (=hors ligne)
    $sql 'INSERT INTO nbConnectes VALUES("'.$IP'", "'.$now.'")';
    $req = @mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.
mysql_error());
}

$heureMax $now $tempsMax;
$sql2 'DELETE FROM nbConnectes where time < "'.$heureMax.'"';
$req2 = @mysql_query($sql2);

$sql 'SELECT IP FROM nbConnectes';
$req = @mysql_query($sql);

$nbInviteEnLigne 0;
$nbMembresEnLigne 0;
$membresEnLigne "";
while($data = @mysql_fetch_assoc($req)) {
    if(eregi("([0-9]+).([0-9]+).([0-9]+).([0-9]+)",$data["IP"])) { 
//C'est une adresse IP
        $nbInviteEnLigne ++;
    }
    else { // Sinon c'est que c'est le pseudo d'un membre
        if(!empty($membresEnLigne)) $membresEnLigne =", ".$membresEnLigne;
        $membresEnLigne $data["IP"]."".$membresEnLigne;
        $nbMembresEnLigne ++;
    }
}
@mysql_free_result($req);
if($nbInviteEnLigne>1) {$s="s";} else {$s="";}
echo ' '$nbInviteEnLigne ' invité'.$s.' en ligne et ';
if($nbMembresEnLigne>1) {$s="s";} else {$s="";}
if($nbMembresEnLigne!=0) {$t=" : ";} else { $t="";}
echo ' '.$nbMembresEnLigne ' membre'.$s.' en ligne '.$t.' '.$membresEnLigne.
' ';
?>

 

Fonctions du code

: Formate une date/heure locale - (PHP 4, PHP 5)
: Détermine si une variable est affectée - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Libère le résultat de la mémoire - (PHP 4, PHP 5, PECL mysql:1.0)
: Alias de la fonction exit() - (PHP 4, PHP 5)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Lit une ligne de résultat MySQL dans un tableau associatif - (PHP 4 >= 4.0.3, PHP...
: Recherche par expression rationnelle insensible à la casse - (PHP 4, PHP 5)
: Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
Commentaires
 Je viens de l'essayer à l'instant, et ce script ne marche pas, je ne vous le recommande pas !
 
Pourrais-tu expliquer ce qui ne fonctionne pas chez toi  ?

Je l'utilise depuis plus d'un an sur plusieurs sites et je n'ai jamais rencontré de problème...
 
Bizarre,je dirais que ça fonctionne à moitié, j'arrive à me connecter à l'espace membre de mon site, le chiffre est bon dans les connectés mais normalement le visiteur doit être à 0 si je suis connecté? 
Donc je me retrouve avec 1 visiteur et un 1 membre connecté.
Tu as une reponse?
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Inclassable - divers

 
 

MySQL

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
        Publicité