Pages: 1
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
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 !!
|
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é.';
?>
Cordialement
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
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
|
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é(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
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
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!
|
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é(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
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Membre
|
Voici ma page "deconnexion.php":
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
Cordialement
|
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
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
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?
|
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
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Membre
|
Mais ça ne fonctionne pas ! enfin pour les 5 min! il aparait toujours connecté !
Thks
|
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
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Membre
|
non j'ai fait ce que tu ma dit mais ça ne fonctionne toujours pas!
|
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
|
Admin
|
Bonjour,
Je t'ai répondu ici:
http://www.supportduweb.com/post-230-membres-connnectes.html
Cordialement
|
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Membre
|
Oh merci le problème a été résolu Mercii
|
Pages: 1
|