[RESOLU] Mode hors ligne après la fermeture d'un onglet

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Mode hors ligne après la fermeture d'un onglet

Re: Mode hors ligne après la fermeture d'un onglet

par Ange Gamer Officiel » 17 janv. 2022, 20:59

J'arrive pas 😭😭😭😭

Re: Mode hors ligne après la fermeture d'un onglet

par @rthur » 17 janv. 2022, 20:03

Le ping se fait en javascript : window.setTimeout() pour l'exécuter toutes les X secondes.
Et ensuite un appel Ajax vers un script PHP.

Re: Mode hors ligne après la fermeture d'un onglet

par Ange Gamer Officiel » 17 janv. 2022, 19:00

Hello, Merci de ta réponse

Pour faire cour je suis nouveau en PHP et au niveau du code je n'y connais presque rien j'ai fais une grande partie donc comme j'ai dit tout est bien fonctionnelle sauf le "Ping" et je n'arrive pas à trouver des bout de code sur Internet ou autres tu pourrais m'aider . As tu discord ou autres pour les partage d'images ?

Merci,
Ange.

Re: Mode hors ligne après la fermeture d'un onglet

par @rthur » 15 janv. 2022, 11:46

Alors le principe le plus couramment utilisé, c'est dans ta table utilisateurs, d'ajouter un champ qui stockera la date et l'heure de la dernière fois que cet utilisateur a été en ligne.
Et ensuite sur ta page tu fais faire à ton utilisateur une sorte de "ping" toutes les 30 secondes pour dire "je suis toujours en ligne !".
Techniquement, c'est juste un appel ajax toutes les 30 secondes à un script PHP qui va mettre à jour le champ date précédemment créé pour cet utilisateur.

Ensuite pour savoir si un utilisateur est en ligne ou pas et bien tu as juste à comparer la date+heure courante avec la date+heure derniere fois en ligne.
Si > 40 secondes (pour prendre une petite marge par rapport à ton ping de 30 secondes) alors tu considères que l'utilisateur est hors ligne.

J'ai choisis 30 secondes de façon arbitraire, ça dépend de ton nombre d'utilisateurs connectés simultanément et de ce que ton serveur est capable d'encaisser car ça peut être assez gourmand en ressources, donc je déconseillerai de descendre sous les 30 secondes.

Mode hors ligne après la fermeture d'un onglet

par Ange Gamer Officiel » 14 janv. 2022, 18:53

Bonsoir,

Je suis en train de faire un projet de Tchat en direct (Comme snap ou Instagram) et je bloque sur 1 seul truc car je procède bien toutes les sessions dont je veux, j'ai créé 5 sessions et j'arrive à me connecter sans problème, envoyer des messages sans problème. Quand je déconnecte le compte connecter en utilisant le bouton Logout cela affiche bien que l'utilisateur est hors ligne, cependant quand l'utilisateur ferme directement l'onglet sans utiliser le bouton Logout et bien la session reste toujours en ligne !

Savez-vous comment régler ce problème svp ?
Y a-t-il une ligne de commande PHP à utiliser pour cela ?

Merci,
Ange