Rechercher : dans
Par :

PHP - Savoir si un user est connecté ou pas

Dernière réponse le 13 aoû 2007 à 17:51:41 blackoo, le 9 aoû 2007 à 13:49:02 
 Signaler ce message aux modérateurs

Salut !

Je voudrai savoir comment faire pour afficher un statut de connexion pour les users enregistrés de mon site. En fait je voudrai afficher sur les commentaires ou dans le forum un statut "en ligne" ou "hors ligne" sous le pseudo de mes membres mais je ne sais pas comment faire. Est-ce que quelqu'un peut me renseigner svp.

Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « PHP Savoir si un user est connecté ou pas » dans :
[WiFi] Déconnexion WiFi et reconnexion VoirSi la connexion sans fil se déconnecte et se reconnecte régulièrement, il peut s'agir : d'un problème de puissance d'émission : Auquel cas, il faut rendre le point d'accès le plus accessible possible en enlevant les objets à proximité. Il faut...
PHP - Connexion à un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
PHP - Administration d'un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Pour plus d'informations sur les fonctions LDAP de PHP, reportez...

1

Tiller, le 9 aoû 2007 à 14:12:21

Lorsque la personne change de page, sa marque le time() dans la base de donnée, et une fois sur la page, toute les x secondes, il met a jour le time() dans la bdd, via une iframe ou via ajax.

Sinon il me semble qu'il y a une solution de regarder si la session est toujours valide en explorant le dossier session mais je ne sais aps comment cela fonctionne.

Et apres tu defini un temps d'inactivité qui le mieu est le x seconde de tout à l'heure plus une dizaine de seconde pour les lag

donc un truc du style

if ($dans_la_bdd['time'] >= (time() - (x + 10))) echo $dans_la_bdd['pseudo'].' est en ligne';

On dit que les oiseaux sont libres dans le ciel,
Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?

Répondre à Tiller

2

Reivax962, le 9 aoû 2007 à 14:14:28

Bonjour,

Bon, déjà, le protocole HTTP est en mode « non connecté », ce qui signifie que savoir si quelqu'un est connecté ou non n'a, stricto sensu, pas lieu d'être.
En règle général, on se définit un délai par rapport à la dernière action de l'internaute. Par exemple, on peut dire que si un internaute a changé de page dans les 5 dernières minutes, alors il est connecté. Ou encore, si sa session est active sur le serveur.

Pour répondre à ton problème, je vois deux moyens.
1 - utiliser une table dans la base de données, qui contienne les ID de tes utilisateurs, et la date de dernière action. Dès qu'il change de page, hop, tu la modifies. Ensuite, tu fais une requête dans cette table qui va chercher tous les utilisateurs qui ont fait une action dans les X dernières minutes.
Ca peut paraître un peu lourd, mais si tu indexes bien ta table suivant la date, et surtout si tu n'as pas 10 000 visiteurs par jour, il n'y a pas de raison que ça pose problème.

2 - au niveau serveur. J'ai fait une petite recherche sur le site www.php.net, mais je n'ai pas trouvé de fonction ou variable globale qui soit capable de donner des informations sur les autres sessions que celle de l'utilisateur courant. C'est peut-être fait exprès, pour des raisons de sécurité, encore que j'en doute... C'est peut-être aussi moi qui n'ait pas bien regardé !

Sinon, il existe des fora gratuits, comme phpBB ou d'autres, qui le font : tu peux t'amuser à les télécharger et essayer de comprendre comment ça fonctionne.

Xavier

Répondre à Reivax962

3

blackoo, le 9 aoû 2007 à 14:39:31

J'ai déja essayé de télécharger PHPBB pour comprendre comment il font mais je n'ai pas réussi. Tiller j'ai compris ton code mais dois-je créer une table spéciale pour ça ou pas ? Merci

Répondre à blackoo

4

 Tiller, le 13 aoû 2007 à 17:51:41

Il faut soit créer une table soit faire avec des txt ^^

On dit que les oiseaux sont libres dans le ciel,
Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?

Répondre à Tiller