JeuWeb - Crée ton jeu par navigateur
Les membres connectés - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Les membres connectés (/showthread.php?tid=8195)



Les membres connectés - Xenos - 14-09-2020

Les membres connectés

Beaucoup de jeux utilisent un champ dans leur table utilisateurs pour stocker la dernière actualisation par le joueur (notamment pour l'affichage des ressources). Il serait donc bête de créer une nouvelle table pour l'affichage de membres en ligne ce qui consommerait des ressources serveur inutiles.
Voila donc mon premier script pour afficher le nombre total de membres en ligne :

Code :
<?php
    //On définit à quoi correspond être "en ligne".
    //Ici j'ai mis que tout membres ayant actualisé la page de jeu endéant 5 min est connecté.
    $Marge = time() - 300;
    
        //On compte maintenant le nombre de membres qui ont actualisé selon la marge.
        //Le champ qui correspond a la dernière actualisation s'appelle "Actualisation" chez moi.
        $Query = mysql_query("SELECT COUNT(*) AS Connectés FROM users WHERE Actualisation > '$Marge' ");
        $Fetch = mysql_fetch_array($Query);
        
        //On affiche le résultat :
        echo "Il y a actuellement " . $Fetch['Connectés'] . " joueurs connectés.";
?>

Mon deuxième script consiste a voir si un joueur est en ligne en cliquant sur sa ville (sur la map). Dans mon cas c'est une page qui s'appelle affiche_profil.php.

Code :
<?php
    //On récupère l'ID par $_GET
    $A_Afficher = $_GET['ID'];
    
        //On vérifie que l'ID est bien numérique
        if(is_numeric($_GET['ID'])){
        
            //On selectionne l'utilisateur selon l'ID
            $Query = mysql_query("SELECT Actualisation FROM users WHERE Id = '$A_Afficher'");
            $Fetch = mysql_fetch_array($Query);
                
                //On vérifie que l'utilisateur existe
                if(!empty($Fetch['Actualisation'])){
                    $Marge = time() - 300;
                      if($Fetch['Actualisation'] > $Marge){
                        echo("Cet utilisateur est connecté");
                      }
                      else{
                        echo("Cet utilisateur n'est pas connecté");
                      }
                }
                
                else{
                    echo("Cet utilisateur n'existe pas !")
                }
        }
        else{
            echo("Cette URL (adresse) n'est pas valide")
        }
?>

Pour terminer n'oubliez pas de mettre la dernière actualisation de page à jour dans votre connexion et déconnexion ^^

Code :
<?php
    //decconexion :
    mysql_query("UPDATE users SET Actualisation = 0 WHERE Pseudo = '$Pseudo'");
    
    
    //connexion
    $time = time();
    mysql_query("UPDATE users SET Actualisation = $time WHERE Pseudo = '$Pseudo'");
?>

Voila, voila
En espérant vous avoir simplifier la vie (avec un script tout simple)

Psy ^^