Détermination du statut en ligne d'un utilisateur dans PHP et MySQL
En utilisant le suivi de session, cet article vise à établir une méthode efficace pour déterminer la connexion d'un utilisateur présence.
Piggyback sur les sessions
Bien que le superposition sur les sessions PHP fournisse une solution pratique, elle repose sur des horodatages et des délais d'attente. Pour éviter ces limitations, nous explorons une approche alternative centrée sur le suivi de l'activité des utilisateurs.
Suivi basé sur une base de données
Dans la table "Utilisateurs" de votre base de données, créez un "lastActiveTime " champ qui capture l'heure de la dernière interaction d'un utilisateur. En mettant continuellement à jour ce champ, vous pouvez déterminer le statut en ligne d'un utilisateur en recherchant ceux qui ont un "lastActiveTime" dans une période spécifiée, comme les cinq dernières minutes.
Éviter les fuseaux horaires
Pour simplifier le processus, utilisez l'heure de votre serveur (via la fonction NOW() de MySQL) plutôt que d'essayer de tenir compte des fuseaux horaires. Cette approche fournit une méthode fiable pour suivre les utilisateurs actifs en temps réel.
Mises à jour constantes
Si le suivi d'une activité continue est essentiel, vous pouvez implémenter un script JavaScript qui envoie un "ping" à votre serveur toutes les minutes. Cela mettra à jour les enregistrements d'activité des utilisateurs sans nécessiter une navigation constante sur les pages.
Extrait de code mis à jour
L'extrait de code mis à jour suivant utilise la récupération et promet de gérer les requêtes « ping » :
<code class="javascript">(async function ping() { // Asynchronously call stillAlive.php await fetch("stillAlive.php"); // Issue this call again in 60 seconds setTimeout(ping, 60_000); }());</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!