PHP - Savoir si utilisateur est connecté
Résolu
bobox87
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
bobox87 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
bobox87 Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai un problème que je n'arrive pas à résoudre. J'essaie de créer un script qui lorsque on arrive sur la page de consultation du profil d'un membre affiche s'il est connecté ou pas.
A chaque fois qu'un utilisateur arrive sur le site il est ajouté dans ma table whosonline avec les infos suivantes. Si c'est un visiteur le online_id vaut 0. Quand il se connecte il est remplacé par l'id du membre.
online_id online_time online_ip
28 1284322261 -1062731259
27 1284322326 2130706433
Tout ce système marche bien mais quand un membre se connecte et qu'il veut consulter son profil il apparait hors ligne. Si un 2ème utilisateur se connecte, le 1er membre apparait connecté et pas le second et ainsi de suite.
Pour savoir si l'utilisateur est connecté j'exécute ce code sur la page ou on consulte le profil du membre
Je comprends vraiment pas ce qui foire, j'ai utilisé la même technique pour empêcher un membre d'ouvrir deux connexions simultanées et ça marche parfaitement.
Voilà j'ai un problème que je n'arrive pas à résoudre. J'essaie de créer un script qui lorsque on arrive sur la page de consultation du profil d'un membre affiche s'il est connecté ou pas.
A chaque fois qu'un utilisateur arrive sur le site il est ajouté dans ma table whosonline avec les infos suivantes. Si c'est un visiteur le online_id vaut 0. Quand il se connecte il est remplacé par l'id du membre.
online_id online_time online_ip
28 1284322261 -1062731259
27 1284322326 2130706433
Tout ce système marche bien mais quand un membre se connecte et qu'il veut consulter son profil il apparait hors ligne. Si un 2ème utilisateur se connecte, le 1er membre apparait connecté et pas le second et ainsi de suite.
Pour savoir si l'utilisateur est connecté j'exécute ce code sur la page ou on consulte le profil du membre
//On affiche si le membre est en ligne $sql = mysql_query('SELECT online_id FROM whosonline ORDER BY online_id'); $membres_connectes = mysql_fetch_array($sql); // liste de tous les connectés $membre_id = $_GET['id'];// id du membre dont on consulte le profile if (in_array($membre_id, $membres_connectes)){ echo "en ligne"; } else echo "hors ligne";
Je comprends vraiment pas ce qui foire, j'ai utilisé la même technique pour empêcher un membre d'ouvrir deux connexions simultanées et ça marche parfaitement.
A voir également:
- PHP - Savoir si utilisateur est connecté
- Comment savoir qui est connecté sur mon wifi - Guide
- Appareil connecté facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Changer nom utilisateur windows 10 - Guide
- Utilisateur indisponible messenger - Guide
6 réponses
et comme ça:
$sql = "SELECT online_id FROM whosonline WHERE online_id='".mysql_real_escape_string($_GET['id'])."'"; $result=mysql_query($sql); $data=mysql_fetch_assoc($result); if ($data['online_id']!=0){ echo "en ligne"; } else{ echo "hors ligne"; }
Bon sang je suis d'un côté hyper content car ton code marche à la perfection et je te remercie vraiment, car là il ne me restait plus beaucoup de cheveux à force de me les arracher^^
Et d'un autre côté je ne comprend pas du tout pourquoi celui la marche et pas le mien. L'idée de comparer l'identifiant du membre qu'on visite avec la liste des identifiants de tous les membres me paraissait logique aussi...
Je ne voudrais pas trop en demander mais si tu as des éléments d'explications je suis tout ouïe.
Mais déjà un grand merci pour ton code !
Et d'un autre côté je ne comprend pas du tout pourquoi celui la marche et pas le mien. L'idée de comparer l'identifiant du membre qu'on visite avec la liste des identifiants de tous les membres me paraissait logique aussi...
Je ne voudrais pas trop en demander mais si tu as des éléments d'explications je suis tout ouïe.
Mais déjà un grand merci pour ton code !
c'est plus logique de demander à mysql de faire déja le tri par rapport à l'id
ensuite esayes ça avec ton code:
ensuite esayes ça avec ton code:
$sql = mysql_query('SELECT online_id FROM whosonline ORDER BY online_id'); $membres_connectes = mysql_fetch_array($sql); // liste de tous les connectés //pour voir la guelle de ton array //ce que tu recherche est dans la valeur ou dans la clef ? echo '<pre>'; print_r($membres_connectes); echo '</pre>';
Pour le membre qui l'id 27
Moi ce que je cherche est dans la valeur. Tu veux dire que mon erreur était de comparer la clé de l'Array avec le $_GET['id'] ??
Array ( [0] => 27 [online_id] => 27 )
Moi ce que je cherche est dans la valeur. Tu veux dire que mon erreur était de comparer la clé de l'Array avec le $_GET['id'] ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non l'id était bien dans la valeur
mais en fait ton erreur est de sortir tous les online_id dans l'array qu'ils soient à 0 ou pas
mais en fait ton erreur est de sortir tous les online_id dans l'array qu'ils soient à 0 ou pas