Vous êtes ici Codes PHP et MySQL > Inclassable > Afficher la liste des connectés sur le site.

 

Afficher la liste des connectés sur le site.

Ce code sert à afficher la liste des connectés sur le site.

On stoque l'ip du visiteur, son pseudo (s'il est logé) et sa date de dernière visite
 
R@f
Site de l'auteur voir
[17] sources en PHP voir
Code vu 16784 fois
Enregistré le 01 Sept 2004
  • 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 la liste des connectés sur le site.
  • 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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Afficher la liste des connectés sur le site.              */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts52-PHP.htm               */
/* Auteur         : R@f                                                       */
/* Date édition   : 01 Sept 2004                                              */
/* Website auteur : http://www.phpsources.org                                 */
/*                                                                            */
/******************************************************************************/


/*
Création de la table MySQL
CREATE TABLE `connectes` (
    `ip` varchar(20) NOT NULL default '',
    `derniere` int(9) unsigned NOT NULL default '0',
    `pseudo` varchar(32) NOT NULL default '',
    PRIMARY key (`ip`)
) TYPE=MyISAM;
*/

// fonction a appeler au début  de vos pages
function connectes()
{
    $temps 5;
    
    if(mysql_connect(BDD_HOSTBDD_PSEUDOBDD_PASS))
        mysql_select_db(BDD_BDD);
    else
        return;
        
    // ip du client
    $ip $_SERVER['REMOTE_ADDR'];
    
    // pseudo
    $pseudo = empty($_SESSION['nom']) ? '' $_SESSION['nom'];
    
    // time actuel
    $time time();

    // on recherche l'utilsateur
    $sql_query "SELECT * FROM connectes where ip='$ip'";
    $result mysql_query($sql_query);
    
    if(!$result)
        return;
    
    // si l'utilisateur n'est pas deja dans la table
    if(mysql_num_rows($result) == 0)
    {
    $sql_query "INSERT INTO connectes VALUES ('$ip', '$time', '$pseudo')";
        $result mysql_query($sql_query);
        
        if(!$result)
            return;
    }
    // mise-à-jour
    else
    {
$sql1="UPDATE connectes SET derniere='$time',pseudo='$pseudo' WHERE ip='$ip'";
        
        $result mysql_query($sql1);
        
        if(!$result)
            return;
    }
    
    // temps d'incativité
    $time -= $temps 60;
    
// on supprime ceux qui n'ont pas été connectés depuis assez longtemps
$sql_query "DELETE LOW_PRIORITY FROM connectes WHERE derniere <= $time";
$result mysql_query($sql_query);
    
    mysql_close();
}


// Affichage des connectés, à mettre ou vous voulez ;-)
$stop 0;
            
if(mysql_connect(BDD_HOSTBDD_PSEUDOBDD_PASS))
    mysql_select_db(BDD_BDD);
else
    $stop 1;
                        
if(!$stop)
{
    $sql_query "SELECT pseudo FROM connectes WHERE pseudo <> ''";
    $result mysql_query($sql_query);
                        
    if(!$result)
        $stop 1;
    else
    {
        echo '<font color="#0000FF">Connectés:</font><br>';
                            
        while($connecte mysql_fetch_array($result))
            echo $connecte[0] . '<br>';
    }   
}
                    
if($stop == 0)
{
    $sql_query "SELECT count(*) FROM connectes WHERE pseudo = ''";
    $result mysql_query($sql_query);
                        
    if($result)
    {
    $visiteurs mysql_fetch_array($result);
                            
    echo '<br><font color="#0000FF">Visiteurs:</font><br>' $visiteurs[0];
    }
}
                    
mysql_close();

?>

**********************************************

-----------------------------
Voici ce qu'il faut changer:
-----------------------------
Dans la fonction connectes: 
- $temps = 5; // nombre de minute d'inactivité
avant de supprimer un membre de la liste des connectes
- if(mysql_connect(BDD_HOST, BDD_PSEUDO, BDD_PASS))
mysql_select_db(BDD_BDD); //infos de connection à mysql
- Pour le pseudo du visiteur, j'utilise une variable de session
nommée nom, vous pouvez changer la ligne suivante:
$pseudo = empty($_SESSION['nom']) ? '' : $_SESSION['nom'];


Script d'affichage:
if(mysql_connect(BDD_HOST, BDD_PSEUDO, BDD_PASS))
mysql_select_db(BDD_BDD);

***************************************************
 

Fonctions du code

: Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
: Retourne le timestamp UNIX actuel - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL...
: Ferme la connexion MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: - (PHP 4, PHP 5, PECL mysql:1.0)
Commentaires
bonjour et merci pour tous les sript. j'essaye de faire marcher le script
"Afficher la liste des connectés sur le site"
j'ai l'erreur suivante :
Parse error: parse error, unexpected T_VARIABLE in /var/www/free.fr/d/b/projeteurasien/qui.php on line 16
merci pour votre aide
patrick
 
j'ai aucune erreur mais rien ne s'affiche ??
et rien ne s'enregistre dans la bdd ??
 
Moi ça fonctionne mais ca supprime juste le pseudo dans la table et non toute l'entré et c'est bien embêtant car visiteur augmente toujours et si on ferme le navigateur en postant un message alors l'entré n'est pas supprimé
 
 J'ai une question , il faut laisser ce qu'il y a en Orange ?
 
Bonjour,
j'ai opté ta méthode et j'ai eu des problème.
Si je comprend bien avec ta méthode on suppose que les ip ne peuvent pas se ressembler, non? Pour moi, pour toute personne de mon pays (Burundi)  visitant mon site est repérée avec la meme adresse ip, pour vous dire que j'ai toujours une seule personne connectée selon la base de données meme si en réalité ils peuvent etre 100.
Je ne sais pas si il y a une personne qui aurait eu le meme problème pour les petits pays comme nous et j'aimerais savoir comment il a pu contourner le problème.
Merci
 
Ajouter un commentaire
Code de sécurité

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

Connexion

 
 

Inclassable

 
 

PHP

 
 
        Publicité