|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Bonjour,
je suis sur le développement d'un site avec membres. Lorsqu'une personne consulte le profil d'un membre, j'aimerai qu'il puisse savoir si le membre est en ligne ou pas. Ceci est fait sur ce forum-ci, et sur pas mal d'autres sites. Comment pourrais je faire? Merci |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
Hello,
Pour faire cela tu devras utiliser les session, si tu l as jamais fais regarde d'abord un tuto. Donc pour faire cela quand un membre se connecte a ton site tu ouvre une session et tu met dans un nouveau champs timestamp l heure a laquelle il sait connceter. Et toutes les x minutes tu verifies les membres qui sont connecté ou pas et tu fais un update de la bdd. Voila a peut pres l'idee |
|
|
00
|
|
|
#3 | ||
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Citation:
Il faut obligatoirement avoir un champ en plus dans la base de donnée? ne pourrait on pas faire une vérification sur toutes les sessions ouvertes? Citation:
|
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
Oui tu es obliger d'ajouter un champs ds la bdd moi je dirais meme 2 avec un champs timestamp et l autre online que tu met a 1 ou 0 en fonction si il est la ou pas.
Quand tu verifie tu te connecte la bdd et pour chaque membres tu regarde le timestamp si tu verifie toutes les 5 minutes tu fais l heure actuel - 5 min (convertit en timestamp) tu compare avec l autre si dans la bdd il est plus grand c'est que il est on-line et donc tu l affiche. et a la fin tu fais un update de l'utilisateur qui a executer ta page en remettant le timestamp a l heure actuel ainsi tu evite les zombi a savoir les personne qui sont connecter a ton site mais afk. voila j'espere que j'ai pas ete trop flou |
|
|
00
|
|
|
#5 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Sur le principe, je vois comment faire +-, mais c'est au niveau pratique dans mes pages que je veux surtout de l'aide. Je trouve des sources sur le net pour avoir le nombre de personne en ligne,... mais pas pour ce genre de chose.
- au moment ou quelqu'un se connecte et/ou charge une page aller modifier l'heure timestamp dans la db - vérifier toutes les x minutes le timestamp des membres et ainsi influer sur l'etat connect& 1 ou 0 |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
En fait c'est pas toi qui dit de verifier toutes les x minutes.
par exemple tu fais une page header avec la verification de qui est en ligne. tu fais un footer avec les membres connecté grace au header. et dans ta page index tu fais un require header et footer. ainsi chaque que qlqun se connecter ou change de page il y a une mise a jours ds la db. evidement tu dois faire en sorte qu'il y ai tjs le header ds toutes tes pages. Moi en general je fais en sorte que toutes mes page se charge ds mon index comme ca je le fais que une fois. |
|
|
00
|
|
|
#7 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
je ne cherche paz à avoir une liste des personnes connectées.
ce que je veux, c'est lorsqu'une personne consulte la fiche d'un membre, qu'il y aie qqch qui indique si il est en ligne (image de lumière verte/rouge, ou texte "connecté"/"déconnecté", ou...). Ah, donc c'est bien ce qui me semblait, ce n'est pas une fonction qui vérifie toutes les x minutes. c'est mettre ce code la sur une page qui se charge à chaque chargement de page (index avec require pour chaque autre page suivant le menu choisi dans mon site). |
|
|
00
|
|
|
#8 | |
|
Membre confirmé
![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
ouep
Pense au bouton resolut |
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Heu, pour info;
Désolé, je n'ai pas compris et ça m'intéresse aussi; quand le membre se connecte, on stocke le timestamp actuel dans une bdd, donc on aura le timestamp du moment où il s'est connecté ? comment savoir si il est en ligne ? désolé si je vous embête, mais je tiens à comprendre, d'avance, merci |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
Ben on met le timestamp actuel et on met un champs present a 1 pour dire qu il est on line.
A chaque fois que la page est chargee par un client on verifie tous les timestamp à 5 minutes pres pour savoir qui est encore en ligne et on raffraichis le timestamp du gars qui vient de charger la page voila. |
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
ok j'ai compris, merci, donc, ceci suggère qu'un membre, pour être "online", doit charger une page toutes les 5 mins ? c'est bien ça?
|
|
|
00
|
|
|
#13 |
|
Membre actif
![]() Inscription : novembre 2003 Messages : 236 ![]() |
ouep, si il est inactif pendant plus de 5 minutes il sera considere comme hors line mais tu peux definir un temps plus ou moin long a toi de voir.
En sachant que plus le temps est court plus ta supposition des membres online est correct mais augement la charge du serveur. Faut choisir un bon compromis |
|
|
00
|
|
|
#14 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Rebonjour,
Je vais tester tout ceci. J'ai ajouté un champ à la base de donnée et mis les quelques lignes de code pour faire un update de la DB à chaque chargelent de page sur la page index. Cela fonctionne, c'est la première étape. Maintenant il me reste à savoir comparer ce champ datetime avec l'heure courante pour voir si il y a plus de 5 minutes ou pas... Pouvez vous m'aidez au niveau du code? Merci |
|
|
00
|
|
|
#15 |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Bonjour,
j'ai ceci par exemple pour avoir un age par différence entre 2dates. Ca doit être du même genre pour trouver si il y a plus de 5 minutes entre un datetime et l'heure actuelle... Personne pour m'aider?? Code :
YEAR(FROM_DAYS(1 + TO_DAYS(CURDATE()) - TO_DAYS(birthday))) as age |
|
|
00
|
|
|
#16 |
|
Membre à l'essai
![]() Inscription : juin 2004 Messages : 37 ![]() |
Salut,
Tu peux récupérer le timestamp que tu as dans ta BD et la comparer avec un time() (si tu as stocker la date avec cette méthode) |
|
|
00
|
|
|
#17 | |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Citation:
![]() Je sais que je dois faire ca J'ai un champ timestamp dans la BD qui contient la date et l'heure de la dernière action. je dois la comparer avec l'heure courante pour voir si il y a plus de 5 minutes ou pas pour considérer ou non la personne comme en ligne. Merci |
|
|
|
00
|
|
|
#18 |
|
Membre à l'essai
![]() Inscription : juin 2004 Messages : 37 ![]() |
Comment stockes-tu le Timestamp dans ta BD (quelle méthode) et quelle est la forme du Timestamp dans ta BD ?
|
|
|
00
|
|
|
#19 | |
|
Membre extrêmement actif
![]() Inscription : avril 2005 Messages : 1 244 ![]() |
Citation:
donc de format timestamp normal, "yyyy-mm-jj hh:mm:ss". |
|
|
|
00
|
|
|
#20 |
|
Membre à l'essai
![]() Inscription : juin 2004 Messages : 37 ![]() |
Je pense que tu peux comparer les 2 dates en utilisant date()
--- Récupère le timestamp de ta BD (via un SELECT) --- Compare le avec le timestamp actuel : strtotime(date(Y-m-d h:i:s)) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com