[Script PHP] connectés

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par clad, 19 Septembre 2005.

  1. clad
    clad WRInaute occasionnel
    Inscrit:
    25 Février 2005
    Messages:
    339
    J'aime reçus:
    0
    salut,

    je cherche un bon script PHP qui montre combien il ya de connectés sur le site
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
  3. sky
    sky WRInaute discret
    Inscrit:
    3 Mars 2003
    Messages:
    227
    J'aime reçus:
    0
    Salut

    J'aime beaucoup ce script petit script qui utilise juste un fichier texte.
    Il te faudra :

    - 1 page cpt.txt (chmod 777)
    - 1 page count.php
    - 1 fonction pour appeller le compteur

    La page count.php
    Code:
    <?php
    #
    ## Le compteur (ce code) est basé sur un script du site http://www.actulab.com/.
    ## N'oublier pas de leurs rendre visite :).
    ## N'oublié pas non plus de mettre le fichier cpt.txt en CHMOD 777.
    #
    
    $compteur_live = file("cpt.txt");
    
    $premiere_ligne_a_garder=-2;
    do { 
    $premiere_ligne_a_garder=$premiere_ligne_a_garder+2;
    } while((date('U', strtotime('-300 seconds')) > $compteur_live[$premiere_ligne_a_garder]) && ($premiere_ligne_a_garder < count($compteur_live)));
    
    if(isset($_SERVER["REMOTE_ADDR"])) {
      $ip_en_cours = $_SERVER["REMOTE_ADDR"];
    }else{
      $ip_en_cours = "Non identifiable";
    }
    
    $compteur = "";
    if($premiere_ligne_a_garder < count($compteur_live)) { 
      for($i=$premiere_ligne_a_garder; $i<count($compteur_live); $i=$i+2) {
        
        if(trim($compteur_live[$i+1]) != $ip_en_cours) {
          $compteur .= trim($compteur_live[$i])."\n".trim($compteur_live[$i+1])."\n";
        }
        
      }
    }
    
    $compteur .= date('U')."\n".$ip_en_cours;
    
    $pointeur=fopen("cpt.txt","w");
    fputs($pointeur,$compteur);
    fclose($pointeur);
    ?>
    Pour appeller le compteur, utiliser cette fonction :
    Code:
    function afCompteur($path){
      $compteur_live = file($path."/cpt.txt");  
      $out=(round(count($compteur_live)/2))." ";
      if((count($compteur_live)/2) > 1) {
       $out.="visiteurs connectés";
      }else{
        $out.="visiteur connecté";
      }
      return $out;
    }
    Exemple d'utilisation :
    Pour maintenir le fichier cpt.txt à jours, il faut include le fichier count.php, et pour afficher le nbr de connecté, on appele la fonction afCompteur() :
    Code:
    <?php
    include("count.php");
    afCompteur("./repertoire");
    ?>
    Simple, facile à utiliser et pas de requêtes mysql inutilent.
    Sky
     
  4. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    >> Simple, facile à utiliser et pas de requêtes mysql inutilent.

    et tu t'es jamais demandé si d'ouvrir un fichier, recuperer toutes les lignes et le fermer n'était pas plus gourmand qu'une requette en BDD ? :)
     
  5. doic
    doic WRInaute impliqué
    Inscrit:
    7 Novembre 2003
    Messages:
    950
    J'aime reçus:
    0
    Bonne question... as-tu la réponse E-kiwi?
     
  6. Ohax
    Ohax WRInaute accro
    Inscrit:
    5 Juillet 2004
    Messages:
    4 900
    J'aime reçus:
    0
    D'après ce que j'ai déjà pu lire c'est moins gourmand mais je doute sérieusement...

    Personnellement je préfère utiliser la base de donnée pour faire ça
     
  7. clad
    clad WRInaute occasionnel
    Inscrit:
    25 Février 2005
    Messages:
    339
    J'aime reçus:
    0
  8. Thierry Bugs
    Thierry Bugs WRInaute accro
    Inscrit:
    16 Juin 2004
    Messages:
    3 363
    J'aime reçus:
    1
  9. Digit
    Digit WRInaute occasionnel
    Inscrit:
    18 Avril 2003
    Messages:
    451
    J'aime reçus:
    3
    A mon sens ces scripts paramétrés à 300 secondes (5 minutes) servent à flatter son égo en grossissant les stats.
    Pour indiquer un nombre de connectés il me semble que cette valeur devrait être largement réduite. (et en plus ça fait moins de lignes à analyser donc c'est plus performant)
    Ou alors mentionner que ce sont les visiteurs ces 5 dernières minutes, et non pas des connectés.
    Les systèmes basés sur des fichiers ne peuvent pas supporter un gros traffic :
    - conflit d'accès au fichier
    - perte de certaines valeurs pour ceux qui n'ont pas pu être écrits.
    C'est tout l'intérêt d'une base de données.
     
  10. sky
    sky WRInaute discret
    Inscrit:
    3 Mars 2003
    Messages:
    227
    J'aime reçus:
    0
    Oui, 5mn est beaucoup, mais de toute façon, quel que soit la technique, on a jamais le nbr de personne en ligne exact .... (du moins, pas en http). Tu peut aussi mettre à 2 mn si ça te plais ...

    Sinon, pour le "cimbat" fichier ou bdd ... ça d"pend beaucoup de ton serveur aussi. Si t'es sur free, un compteur fichier texte sera plus rapide. Ensuite, ça dépend de toi lol :)

    Pour ce qui est des pb de lecture/écriture en nbr ... il existe une focntion qui marche très bien : flock() (http://fr.php.net/manual/fr/function.flock.php)

    Ensuite, moins gourmand ou pas ... pour un simple lecture/écriture ... je sais pas ...

    Sky
     
  11. sky
    sky WRInaute discret
    Inscrit:
    3 Mars 2003
    Messages:
    227
    J'aime reçus:
    0
    je retire ce que j'ai sur flock.
    Je vient de passer 1 heure à lire à ce sujet, et c'est assès complexe pour assurer une ecriture propre à 100% quand y'a beaucoup de connectés.

    Alors si t'a un gros site avec 10 personne en simultanées, choisi une bdd ^^. Sauf si t'aime te prendre la tete sur la fonction flock :)
     
Chargement...
Similar Threads - [Script PHP] connectés Forum Date
[Script=PHP]Backlinks checker Développement d'un site Web ou d'une appli mobile 6 Décembre 2012
[SCRIPT PHP] Plateforme de blog Débuter en référencement 1 Avril 2009
[Script PHP] Fonctions pour créer un slug (SEO friendly URL) Développement d'un site Web ou d'une appli mobile 14 Septembre 2008
[Script PHP] Planet Développement d'un site Web ou d'une appli mobile 17 Janvier 2007
[Script PHP] Envoyer l'Avatar à partir d'une URL Développement d'un site Web ou d'une appli mobile 1 Septembre 2006
[Script PHP] Création d'annuaires personnalisés Administration d'un site Web 13 Juin 2005
[script] anti spam referrer Développement d'un site Web ou d'une appli mobile 20 Août 2015
[script] miniature et cache d'image à la volée Développement d'un site Web ou d'une appli mobile 13 Décembre 2013
[script] changer un texte en images Développement d'un site Web ou d'une appli mobile 10 Décembre 2013
[Script] Ajouter les boutons de partage des réseaux sociaux sans le tracking Développement d'un site Web ou d'une appli mobile 25 Août 2013
[Script] Clone légal? Développement d'un site Web ou d'une appli mobile 7 Avril 2013
[script] Comment charger un script différent suivant l'heure ? Help ! Développement d'un site Web ou d'une appli mobile 4 Octobre 2012
[script] Oméga-Annonces 1.5.1 - Php/MySqL Développement d'un site Web ou d'une appli mobile 4 Septembre 2012
[script] tracking formulaire d'affiliation Développement d'un site Web ou d'une appli mobile 5 Août 2012
[Script] - Interroger et manipuler Wordpress directement via un script PHP en crontab Développement d'un site Web ou d'une appli mobile 26 Avril 2012
[Script] Pour charger un fichier et le mettre sur son serveur Développement d'un site Web ou d'une appli mobile 6 Mars 2012
[SCRIPT] Topsite Développement d'un site Web ou d'une appli mobile 28 Août 2011
[script] probleme confirm() javascript+ PHP Développement d'un site Web ou d'une appli mobile 7 Juin 2011
[script] gestion d'annuaires photos Développement d'un site Web ou d'une appli mobile 21 Avril 2011
Gestion des Majuscules [script] - PHP / javascript Développement d'un site Web ou d'une appli mobile 9 Mars 2011