Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Aide] Nombre de connectés

Sujet résolu
    20 septembre 2006 à 20:33:51

    Salut les Zéros ! :p

    Voilà j'aurais besoin d'aide pour compter le nombre de connectés en utilisant la base sql sur mon site, je ne sais pas comment faire :euh:

    Il y avait un tuto dessus utilisant la base sql, mais le tuto en question a disparu :(

    Merci de votre aide ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 septembre 2006 à 20:40:16

      C'est simple, tu fais une table avec 2 champs:
      ip et date_last_act
      ip -> l'ip du visteur
      date_last_act -> le timestamp unix de la dernière action du gars

      sur chaque page, tu fais une requête pour mettre a jour le timestamp de la dernière action:
      UPDATE tatable SET date_last_act = '.time().' WHERE ip = "'.$_SERVER['REMOTE_ADRR'].'"'; 


      Après, on supprime les inactifs depuis 5 min ( exemple ), pour ca on supprime ceux dont timestamp actuel - date_last_act > 5*60*60
      DELETE FROM tatable WHERE '.time().'-date_last_act > 5*60*60;


      Et enfin, on compte le nombre de ocnnecté:
      SELECT COUNT(*) FROM tatable GROUP BY ip;


      Et avec ca c'est déjà un bon début :)
      • Partager sur Facebook
      • Partager sur Twitter
        20 septembre 2006 à 20:40:46

        Salut !
        Dans le tuto de M@téo, t'as quelquechose comme cela :
        $ip_act = $_SERVER['REMOTE_ADDR'];
        $retour = mysql_query("SELECT COUNT(*) FROM connectes WHERE ip='$ip_act' ") or die(mysql_error());
        $nbre_entrees = mysql_result($retour, 0);


        if ($nbre_entrees == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
        {
        $time_act = time();
        mysql_query("INSERT INTO connectes VALUES('$ip_act', '$time_act')") or die (mysql_error());
        }
        else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
        {
           

            $time_act = time();
               
               mysql_query("UPDATE connectes SET timestamp='$time_act' WHERE ip='$ip_act'") or die(mysql_error());
        }

        // -------
        // ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

        // On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
        $timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
        mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

        // -------
        // ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
        $retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
        $donnees = mysql_fetch_array($retour);



        Tu fais un echo et c'est dans la poche ^^
        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2006 à 20:42:49

          LOOL désolé j'avais auparvant utilisé ce tuto mais j'étais persuadé qu'il était dans les tutos des zéros ! :o

          Encore désolé ^^ et merci je vais tester cela de suite :p


          Merci Yondaime et Kolle14 :honte:
          • Partager sur Facebook
          • Partager sur Twitter

          [Aide] Nombre de connectés

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown