[PHP] Vérifier la présence d'une personne

Résolu
Bonjour à tous.

Je programme actuellement une interface d'administration pour un serveur de jeu et je voudrais vérifier avec PHP lorsque quelqu'un arrive sur une page.

Par exemple :

Si j'arrive sur exemple.php, la page sait que j'y suis et l'indique dans un cadre.
Lorsque je m'en vais, mon pseudo s'en va du cadre.

Quelqu'un connaîtrait-il une fonction pour ça svp ?

Merci.

6 réponses

  1. Contributeur
    Salut,

    Il n'y pas de fonction, tu peux le faire avec une base de donnée, dans laquelle tu enregistre le pseudo, l'heure d'arrivée et l'heure de départ. Quand il arrive, on enregistre le pseudo et l'heure d'arrivée, avec un Javascirpt, on l'affiche. Et quand il part, on enregistre l'heure de départ, et avec un JavaScript, on l'enlève du cadre. ;)

    Cordialement
    0
    1. Le problème c'est que les connexions se font à l'aide du htaccess :s
      0
      1. Contributeur
        Pourquoi tu ne fais pas un espace membre en PHP/MySQL ?
        0
        1. Bah pour le peu de compte qu'il y a je ne vois aucun intérêt
          0
          1. Je te conseil aussi de faire ton espace membre en PHP.
            Ainsi, sur ta table, il te suffira d'ajouter deux champ "dernier_chargement" et "derniere_page". Le champ "dernier_chargement" contient le timestamp du dernier chargement d'une page et "derniere_page" l'url de la page en cours de lecture.

            Ou bien tu peux faire une simple table avec les champs "pseudo", "dernier_chargement" et "derniere_page".
            Au début de toutes tes pages :
            <?php
            $pdo = new PDO('mysql:host=localhost;dbname=ta_base','root','');
            
            $sql = 'DELETE * FROM lectures WHERE pseudo = :pseudo';
            $req = $pdo->prepare($sql);
            $req->execute(array(':pseudo' => $_SERVER['PHP_AUTH_USER']));
            $req->closeCursor();
            
            $sql = 'INSERT INTO lectures(pseudo,date,page) VALUES(:pseudo,:date,:page)';
            $req = $pdo->prepare($sql);
            $req->execute(array(
                ':pseudo' => $_SERVER['PHP_AUTH_USER'],
                ':date' => $_SERVER['REQUEST_TIME'],
                ':page' => $_SERVER['PHP_SELF']
            ));
            $req->closeCursor();
            ?>
            Et pour afficher la liste des membres connectés sur une page :
            <?php
            $sql = 'SELECT pseudo FROM lectures WHERE date > '.($_SERVER['REQUEST_TIME'] - 300).' AND page = "'.$_SERVER['PHP_SELF'].'"';
            $req = $pdo->query($sql);
            while($row = $req->fetch(PDO::FETCH_OBJ)) {
                echo '<li>'.$row->pseudo.'</li>'."\n";
            }
            $req->closeCursor();
            ?>
            Je n'ai pas testé mais ça devrait être +/- ça.
            0
            1. Bon, j'crois que j'vais tout refaire, merci ^^
              0