Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compteur connecté incrémenté par actualisation

Sujet résolu
    10 juillet 2006 à 17:07:22

    Bonjour, j'ai créé un compteur de connecté différent a celui donné dans le tuto, mais le pb est que lorsqu'il y a deux connecté sur le site, et que l'on actualise, il ajoute un connecté par actualisation!

    Voici mon script

    $ip = $_SERVER['REMOTE_ADDR'];

    $rep_connectes = mysql_query('SELECT ip FROM connectes');
    $connect_info = mysql_fetch_array($rep_connectes);
                           
    if($connect_info['ip'] == $ip) // Si dans l'array $donnees, on trouve l'ip alors on update
    {
            mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $ip . '\'');
    }
    else // Sinon c'est que l'ip est inexistante et donc on l'insère.
    {
            mysql_query('INSERT INTO connectes VALUES(\'' . $ip . '\', ' . time() . ')');
    }
           
    $ancienne_ip = time() - 300; // On fixe une durée pour laquelle on pense que le visiteur est encore la.
           
    mysql_query('DELETE FROM connectes WHERE timestamp<' . $ancienne_ip);
                           
    $retour_connectes = mysql_query('SELECT COUNT(*) AS nb_connectes FROM connectes');
    $donnees = mysql_fetch_array($retour_connectes);
    echo '<i><b>Il y a ' . $donnees['nb_connectes'] . ' connecté(s)!</i></b>';


    Quel est le problème??? Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2006 à 20:46:07

      Je pense que tu devrais faire autrement...
      Tu devrais faire, pour ta première requête, une sélection sur les entrées où l'ip est l'ip du visiteur... Si le nombre de ligne (mysql_num_rows) est différent de 0, tu mets à jour le timestamp, sinon, tu ajoutes l'entrée...
      Là, tu ne devrais plus avoir de souci...
      • Partager sur Facebook
      • Partager sur Twitter
        11 juillet 2006 à 11:33:46

        Merci bien!!
        Je vais vous marquer le résultat pour ceux que ça interessent, ça a l'air de marcher... a part un bug passager, si tant est que c'est un bug :) voici le nouveau code:

        $ip = $_SERVER['REMOTE_ADDR'];

        $rep_connectes = mysql_query('SELECT ip FROM connectes WHERE ip=\'' . $ip . '\'');
                               
        if(mysql_num_rows($rep_connectes) != 0) // Si dans l'array $donnees, on trouve l'ip alors on update
        {
                mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $ip . '\'');
        }
        else // Sinon c'est que l'ip est inexistante et donc on l'insère.
        {
                mysql_query('INSERT INTO connectes VALUES(\'' . $ip . '\', ' . time() . ')');
        }
               
        $ancienne_ip = time() - 300; // On fixe une durée pour laquelle on pense que le visiteur est encore la.
               
        mysql_query('DELETE FROM connectes WHERE timestamp<' . $ancienne_ip);
                               
        $retour_connectes = mysql_query('SELECT COUNT(*) AS nb_connectes FROM connectes');
        $donnees = mysql_fetch_array($retour_connectes);
        echo '<i><b>Il y a ' . $donnees['nb_connectes'] . ' connecté(s)!</i></b>';
        • Partager sur Facebook
        • Partager sur Twitter

        Compteur connecté incrémenté par actualisation

        × 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