Créer un compte
Connexion

Afficher les membres connectés

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
Aglzime
07/07/2010 à 16:47:15
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
donc voilà je revien toujours à propos de mon espace membre!
Pour l'instant tout va bien !
MAIS : j'aimerai affiché les pseudos des membres connectés en haut de ma page:
J'ai bien dit les "pseudos" !!! exemple: Il y a actuellement 5 membres connectés (admin,nico,ahmed,cedric,arouna...)!
Merci d'avance !! ;)

ybouane
07/07/2010 à 17:57:14
ybouane
Admin
Bonjour,
crée dabords une table avec les champs:
pseudo, timestamp:
CREATE TABLE `cpt_connectes` (
  `pseudo` varchar(255) collate latin1_german2_ci NOT NULL,
  `timestamp` varchar(255) collate latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;

Et le code php:
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
if(isset($_SESSION['pseudo']))
{
        $dnns = mysql_fetch_array(mysql_query('select count(pseudo) as nb from cpt_connectes where pseudo="'.$_SESSION['pseudo'].'"'));
        if($dnns['nb']>0)
        {
                mysql_query('update cpt_connectes set timestamp="'.time().'" where pseudo="'.$_SESSION['pseudo'].'"');
        }
        else
        {
                mysql_query('insert into cpt_connectes (ip, timestamp) values ("'.$_SERVER['remote_addr'].'", "'.time().'")');
        }
}
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_fetch_array(mysql_query('select count(pseudo) as nb from cpt_connectes'));
echo 'Il y a actuellement <strong>'.$dnns2['nb'].'</strong> connect&eacute;.';
?>
Cordialement :)

Image
Aglzime
08/07/2010 à 01:40:06
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
Désolé ça ne fonctionne pas ça affiche " il y a actuellement 0 connecté."
d'ailleur il manque le champ "ip" dans le code.sql,
ce n'est pas ce que je cherche je dispose déjà un script pareille que j'ai récupéré sur le site du zero! mais ce que je cherche et un peu plus different!
Ce que je cherche : un code qui permet d'affiché "les pseudos du membres connectés"
;)
Merci d'avance

ybouane
08/07/2010 à 06:30:11
ybouane
Admin
Bonjour,
oups, j'avais pas fini de modifier le code php, essaye celui là, mais avec le même code SQL de tout à l'heure:
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
if(isset($_SESSION['pseudo']))
{
        $dnns = mysql_fetch_array(mysql_query('select count(pseudo) as nb from cpt_connectes where pseudo="'.$_SESSION['pseudo'].'"'));
        if($dnns['nb']>0)
        {
                mysql_query('update cpt_connectes set timestamp="'.time().'" where pseudo="'.$_SESSION['pseudo'].'"');
        }
        else
        {
                mysql_query('insert into cpt_connectes (pseudo, timestamp) values ("'.$_SESSION['pseudo'].'", "'.time().'")');
        }
}
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_query('select pseudo as nb from cpt_connectes');
$num = mysql_num_rows($dnns2);
echo 'Il y a actuellement <strong>'.$num.'</strong> membre(s) connect&eacute;(s)';
if($dnns['nb']>0)
{
        echo ':<br />';
        $i=0;
        while($dn2 = mysql_fetch_array($dnns2))
        {
                $i++;
                echo $dn2['pseudo'];
                if($i<$num)
                {
                        echo ',';
                }
        }
}
echo '.';
?>
Cordialement :)

Image
Aglzime
08-07-2010 à 14:37:01
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Oui celui ci fonctionne il affiche " il y a actuellemnt 2 membres connectés!.
ce que je cherche:
c'est que le code affiche " il y a actullements 2 membres connectés (admin, ahmed)!
Tu vois il faut que ça affcihe aussi les pseudos connectés !
;)
J'ai vu dans la bdd dans la colonne "Pseudo" ya bien les pseudos des gens connectés ( mais dans la page ou j'ai inclus le code ya que ' il ya actuellements 2 membres connectés)
En fait le code que tu m'as donné je l'ai mis dans une page a part, puis j'ai fait <?php include('includes/connectes.php'); ?>
Et j'ai remarqué que le Pseudo du membre même quand il n'est plus connecté, reste toujours dans la base de donnée!
Il faut peut-être modifier le code pour que le pseudo du membre déconnecté se supprime automatiquement !
Merci d'avance!

ybouane
08/07/2010 à 17:21:01
ybouane
Admin
bonjour,
j'ai encore fait une petite erreur, il fallais enlever le "as nb":
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
if(isset($_SESSION['pseudo']))
{
        $dnns = mysql_fetch_array(mysql_query('select count(pseudo) as nb from cpt_connectes where pseudo="'.$_SESSION['pseudo'].'"'));
        if($dnns['nb']>0)
        {
                mysql_query('update cpt_connectes set timestamp="'.time().'" where pseudo="'.$_SESSION['pseudo'].'"');
        }
        else
        {
                mysql_query('insert into cpt_connectes (pseudo, timestamp) values ("'.$_SESSION['pseudo'].'", "'.time().'")');
        }
}
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
$dnns2 = mysql_query('select pseudo from cpt_connectes');
$num = mysql_num_rows($dnns2);
echo 'Il y a actuellement <strong>'.$num.'</strong> membre(s) connect&eacute;(s)';
if($dnns['nb']>0)
{
        echo ':<br />';
        $i=0;
        while($dn2 = mysql_fetch_array($dnns2))
        {
                $i++;
                echo $dn2['pseudo'];
                if($i<$num)
                {
                        echo ',';
                }
        }
}
echo '.';
?>
Et tu doit me donner le code de la page de déconnection.

Cordialement

Image
Aglzime
08/07/2010 à 18:25:33
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Voici ma page "deconnexion.php":
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
Cordialement ;)

ybouane
08/07/2010 à 19:15:45
ybouane
Admin
Bonjour,
donc essaye ce code:
<?php
session_start();
mysql_query('delete from cpt_connectes where pseudo="'.$_SESSION['pseudo'].'"');
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
Tu devra inclure le fichier de connexion mysql au début.

Cordialement :)

Image
Aglzime
09/07/2010 à 00:42:06
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Celui ci fonctionne bien !!!
Merciiiiiiiiiiiiiiiiiiiii YBOUANE franchement t trop fort : respect mec !!
Et si la personne ferme juste les pages de son navigateur, il aparaitra toujours en ligne?

ybouane
09/07/2010 à 06:10:31
ybouane
Admin
Bonjour,
Détecter la fermeture du navigateur et supprimer l'utilisateur de la table prendrait trop de temps à faire et ce serait inutile sachant que ça ne fonctionnerai pas chez tout les utilisateurs.

Il suffit donc de simplement d'attendre 5 minutes pour que l'utilisateur soit supprimé de la liste des connectés.

Cordialement :)

Image
Aglzime
09-07-2010 à 14:22:23
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Mais ça ne fonctionne pas ! enfin pour les 5 min! il aparait toujours connecté ! -_-
Thks ;)

ybouane
09/07/2010 à 17:31:08
ybouane
Admin
Bonjour,
est-tu sûr d'avoir attendu plus de 5 minutes et lorsque tu réouvre ton navigateur, c'est normal que ton pseudo ne soit pas supprimé, car tu est connecté il ne vas donc pas supprimer ton pseudo si tu est connecté.

Donc pour tester, ouvre un navigateur tel que Firefox, ensuite connecte toi, tu verra ton pseudo affiché. Ferme ton navigateur ou reste inactif(sur ton site) plus de 5 minutes, ensuite ouvre un autre navigateur tel que Google Chrome, et tu verra que ton pseudo n'est plus là.

de toute façon la ligne:
$times_m_5mins = time()-(60*5);
mysql_query('detete from cpt_connectes where timestamp<"'.$times_m_5mins.'"');
Sert justement à supprimer les personnes inactives de plus de 5 minutes.

Cordialement

Image
Aglzime
09/07/2010 à 19:01:10
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
non j'ai fait ce que tu ma dit mais ça ne fonctionne toujours pas!


philippe
11/10/2010 à 21:09:34
philippe
Membre
Bonjour,
as tu le script complet sur "les membres connectés avec leur pseudo" car j'avoue que je ne comprends pas toutes les modifications.
D'autre part je ne souhaite pas que les membres soient effacées de ma base.
J'ai déja un compteur sur mon site avec une table "utilisateurs"
Merci pour ton aide
Philippe


ybouane
13/10/2010 à 01:36:18
ybouane
Admin
Bonjour,
Je t'ai répondu ici:
http://www.supportduweb.com/post-230-membres-connnectes.html

Cordialement :)

Image
Aglzime
14/10/2010 à 18:41:22
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Oh merci le problème a été résolu Mercii

Pages: 1