![]() |
[PHP] Qui est en ligne - Version imprimable +- N-PN White-Hat Project (https://dev.n-pn.fr/forum) +-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72) +--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27) +--- Sujet : [PHP] Qui est en ligne (/showthread.php?tid=2502) Pages :
1
2
|
[PHP] Qui est en ligne - sakiir - 12-12-2012 salut salut !! alors voila j'aimerais afficher la liste des utilisateur e ligne sur mon site . Je pense savoir qu’il y a plusieurs manière de le faire mais je n'ai jamais trouvé une solution qui me convient vraiment .. :/ alors si quelques personnes pouvaient me donner leur réponse ici, ça serai hyper sympa ! ![]() RE: [PHP] Qui est en ligne - CyberSee - 12-12-2012 Enfaite c'est plutôt simple ... Il suffit de sauvegarder dans une table l'IP des visiteurs avec un Time stamps puis on choisit après combien de minutes d'inactivité un membre est considéré offline. Créé une table 'session': id, ip, stamp Créé une page session.php Inclus-la une fois dans TOUTES les pages de ton site Ajoute le code suivant: Code PHP : <?php Je tiens juste à dire que je n’ai pas testé mon code, je fais juste la balancer comme ça :-) Mais en théorie ça devrait marcher. RE: [PHP] Qui est en ligne - sakiir - 12-12-2012 merci pour ta réponse ! je vais étudier le code ! et le mettre en œuvre ! ![]() j'ai modifié quelque erreur que tu avais faite .. j'ai la pretention de croire que tu t'es trompé , que tu as confondu ip et id dans ton code mais j'ai compris le principe en faite c'est une sorte de decomtpe avant le timeout qui veut dire que le user est offline. Code : <?php et donc j'ai rencontré un soucis 'est les données que je dois entrer dans la base de données, j'ai mis INT A.I pour l'id, pour l'ip j'ai mis un VARCHAR, et pour le timestamp je ne sais pas du tout quoi mettre .. j'ai aperçu le mot timestamp dans la liste mais celui-ci ne fonctionne pas. c'est a dire qu'aucune donnée ne reste dans la table .. RE: [PHP] Qui est en ligne - CyberSee - 13-12-2012 Si tu parles du WHERE id='".$data['ip']." Non je ne me suis pas trompé, selon ma syntaxe (WHERE id='".$ip['id']."') c'est bien id qu'il faut mettre. Par contre, si tu veux absolument trouver la ligne par l'IP faut remplacer par WHERE ip='".$data['ip']." et non id='".$data['ip']."' Dans les deux cas, ça fonctionne parce que IP est également unique. l'important c'est que si tu utilise id, faut que tu utilises la variable id et si tu utilises ip faut que tu utilises la variable ip évidemment :-) L'id c'est ta clé primaire. Elle doit être en INT(10) en auto increment L'ip et le time stamp peuvent toute les deux êtres VARCHAR(255) RE: [PHP] Qui est en ligne - sakiir - 13-12-2012 ok merci de ta réponse.. je vais cogiter ! Code : "SELECT * FROM session WHERE id='$myip'" RE: [PHP] Qui est en ligne - CyberSee - 13-12-2012 AH oui a cette endroit c'est effectivement ip qu'il faut mettre :-) RE: [PHP] Qui est en ligne - sakiir - 13-12-2012 -lol- ![]() J'ai enfin fais fais fonctionné le script en le modifiant un peu :p j'ai fais ça avec les session.. Donc les utilisateurs on un délai de 1 minute après il sont offline Donc il y a une table id(pas vraiment utile), active(booléen pour 1:online;2:offline), user(username de l'utilisateur), et le stamp(bien sure très important). j'ai re-commenté le code pour plus de compréhension ![]() Code : <?php RE: [PHP] Qui est en ligne - InstinctHack - 14-12-2012 Le.champ actif ne sert a rien et n'est pas tres parlant, au niveau sql (sans regarder le code php ), il signifie quoi ?rien. Donc supprime le. Pour ensuite faire la liste des gens connecter, tu parcours l'objet renvoyé par sql et tu compare le time actuel avec le dernier time enregistrer auquel tu apporte le temps maximun pendant lequel l'utilisateur est connecter meme si il ne fait aucune requête RE: [PHP] Qui est en ligne - sakiir - 14-12-2012 je l'utilise sur plein de page, donc il est préférable pour moi d'utiliser ça, après, je peux faire une fonction que j'inclurais mais la structure de mon site ne le permet pas RE: [PHP] Qui est en ligne - JulienetNel - 14-12-2012 Pourquoi ne pas utiliser une fonction plus simple. Dans le champs utilisateur de la base de donnée, il y aurait un 0 pour pas en ligne et 1 pour en ligne. Si c'est un 0 alors le gars est en ligne et si c'est 1 alors le gars n'est pas en ligne. On pourrait changer le nombre, lorsque le gars se connecte et se déconnecte. Il suffirait ensuite d'une simple condition avec if, elseif et else pour faire le tri. Le else pouvant servir si aucune des conditions n'est rempli, ce qui ne devrait pas arriver. Mais dans cette situation, tu peux choisir une troisième situation : invisible. RE: [PHP] Qui est en ligne - InstinctHack - 14-12-2012 et comment tu sais si il est connecter ou non avec un simple true/false ? RE: [PHP] Qui est en ligne - sakiir - 14-12-2012 Avec un 'SELECT WHERE active=1' .. RE: [PHP] Qui est en ligne - JulienetNel - 14-12-2012 (14-12-2012, 12h18)khaled a écrit : et comment tu sais si il est connecter ou non avec un simple true/false ? Imaginons qu'on est un champs Valide ou Connect, quand l'utilisateur se connecte alors le script remplace la valeur par 1. Si il se déconnecté, alors on remplace la valeur par 0. Si il a condition n'est pas remplit dans l'un ou l'autre, on peut remplir avec un 2 au bout d'un certains temps : Ce qui voudrait que le gars n'est ni considéré en ligne et ni hors ligne, on le considère en situation inconnu. On peut aussi calculer à partir de quand l'utilisateur est déconnecter automatiquement de la session, si il y en a une limite de session et faire passer son champs en 0. (14-12-2012, 19h55)sakiir a écrit : Avec un 'SELECT WHERE active=1' .. En quelque sorte ... RE: [PHP] Qui est en ligne - ThibauT - 14-12-2012 Mais s'il ferme la page directement sans passer par l'option de déconnexion, qu'en es t'il ? RE: [PHP] Qui est en ligne - sakiir - 14-12-2012 et bien c'est la meme chose il est deconnecté.. |