Question concernant les statistiques (cf. WIKI)

BBclone a l'air sympa mais un peu lourd par rapport à ce que je recherche. J'ai donc parcouru le forum pour savoir s'il n'y avait pas une petite solution simple pour connaître le nombre de visiteurs qui sont allés sur mon forum et j'ai finalement trouvé une page intéressante sur le Wiki.
http://wiki.pluxml.org/index.php?page=Statistiques%3A+Affichage+des+visiteurs+en+ligne+et+pages+vues

Problème, on demande d'ajouter une ligne au-dessous d'une ligne du header.php du thème, mais je ne la trouve dans aucun des thèmes que j'ai installés (y compris celui par défaut, d'ailleurs) :
<?php if(!defined('PLX_ROOT')) exit; ?>

Est-ce que c'est moi ou cela dépend de la version du thème ? De Pluxml ?

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour Ghune

    Si la ligne
    <?php if(!defined('PLX_ROOT')) exit; ?>
    
    n'est pas présente au début de ton fichier header.php, rajoute là. (c'est une sécurité en cas d'appel direct du fichier header.php dans le navigateur)

    Après en dessous, tu peux rajouter ce qui est nécessaire au script des stats

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • GhuneGhune Member
    octobre 2010 modifié
    Ok, ca marche, je viens de la voir... c'est bizarre car j'ai utilisé la fonction "rechercher" et ça ne m'a pas permis de trouver le mot "exit" ni même "xi"...

    Enfin, effectivement, je viens de la voir, merci !


    p.s.
    Y a-t-il un moyen d'être de rendre cela consultable uniquement par l'administrateur, pas les visiteurs ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    Je te donne le code en direct live, sans test donc

    Dans le fichier sidebar.php, utilise ce code.
    <?php if(isset($_SESSION['user'])) : ?>
        <h2>Statistiques</a></h2>
        <ul>
            <li>Total des pages vues: <?php $plxStats->TotalViews() ?></li>
            <li>Pages vues aujourd'hui:  <?php $plxStats->TodayViews() ?></li>
            <li><?php echo "Visiteur".$nbtemp; ?> <?php echo " connecté".$nbtemp; ?>: <?php $plxStats->OnlineVisitors() ?></li>
            <li>Nombre de visiteurs: <?php $plxStats->TotalVisitors() ?></li>
        </ul>
    
    <?php endif; ?>
    
    Pour voir les stats il te faudra aller dans ton admin pour être identifié

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Pfff... je suis épaté par tant de maîtrise.

    Franchement, respect ! Ca marche du tonnerre ! Et je me suis déconnecté pour voir, c'est impec, on ne voit rien.

    Voilà pourquoi je parle de Pluxml autour de moi, c'est petit, simple mais les possibilités sont énormes. Chapeau à vous tous !
  • Haaa ben moi perso j'utilise un simple
    <?php if (!empty($_SESSION)):?>
    
    il y a un risque ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    C'est mieux dans ce cas d'utiliser isset

    isset teste si une variable est définie (déclarée)

    empty teste si une variable est vide, ce qui sous entend qu'elle est censée être déclarée avant.

    Quand tu arrives sur ton site la 1ere fois, la variable $_SESSION n'est pas déclarée. Elle ne le sera que quand tu seras passé par la page d'identification auth.php

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • GhuneGhune Member
    octobre 2010 modifié
    Tiens, j'ai l'impression que le décompte se remet à zéro au bout d'un certain temps. Dans ma sidebar, cela me donne :

    Statistiques

    * Total pages vues: 1
    * Aujourd'hui: 1 (total des pages vues aujourd'hui)
    * Total visiteurs: 1
    * Connectés: 1

    Pendant environ une heure, je crois, tout marche parfaitement puis cela se remet à zéro, il me semble. J'ai bidouillé la mise en forme mais pas le fichier dans stats.php
    J'ai remarqué un 60 à deux endroits, est-ce que ça pourrait en être la cause ?
  • GhuneGhune Member
    octobre 2010 modifié
    Le retour à zéro se fait plus fréquemment que toutes les heures, je crois. Bizarre.

    En fait, c'est tout simple, la seule stat qui m'intéresse est de savoir combien de personnes (si possible d'ip différentes) se connectent sur le site.

    Un truc du genre :
    Nombre de visiteurs : 1000
    ... ça m'irait très bien.
  • Suis-le seul à avoir ce problème ?
  • Un petit up pour demander de l'aide.

    A chaque refresh de la page, le fichier .xml qui contient les stats se remet à zéro... Un peu embêtant.

    Une idée ?
  • l'idée serait de stocker le contenu du fichier .xml dans un fichier temporaire avant d'écrire dedans et de rajouter (addition) le contenu du fichier temp aux différents nombres actuels, cela vous semble-til faisable?
  • StéphaneStéphane Member, Former PluXml Project Manager
    super_g2 a écrit:
    l'idée serait de stocker le contenu du fichier .xml dans un fichier temporaire avant d'écrire dedans et de rajouter (addition) le contenu du fichier temp aux différents nombres actuels, cela vous semble-til faisable?
    c'est ce que fait déjà la fonction plxUtils:write utilisée dans l'écriture des statistiques.
    il faut plutôt essayer en ajoutant un lock exclusif sur le fichier, comme le montre cet exemple:
    http://www.htmlite.com/php043.php

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Si quelqu'un à le temps de tester ça:

    Dans le fichier stats.php qui contient la class plxStats, dans la fonction _editStats remplacer la ligne:
    plxUtils::write($xml, $this->filename);
    
    par
    $f=fopen($this->filename,"w");
    flock($f, LOCK_EX);
    fwrite ($f, $xml);
    flock ($f, LOCK_UN);
    fclose($f);
    
    N'ayant pas le temps de tester, je ne sais pas du tout ce que ça peut donner.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Il existe 1000 et une facons d'auditer son site.Il existe des solutions indépendantes du site fiables comme par exemples:

    //HORS SERVEURS
    -Google Analytics
    -webclicky,counterstats,etc...

    Il existe aussi beaucoup de solutions adaptés pour un serveur avec mysql.
    //SERVEURS(COMPTAGE DES BOTS.)
    -chcounter
    -phpstats etc....
    Je les ai toutes testés et sont fonctionnelles avec un peu de codage.(très peu.)
    Bbclone ne convient pas pour free par exemple au cause d'histoires de "flock".
  • Stéphane a écrit:
    super_g2 a écrit:
    l'idée serait de stocker le contenu du fichier .xml dans un fichier temporaire avant d'écrire dedans et de rajouter (addition) le contenu du fichier temp aux différents nombres actuels, cela vous semble-til faisable?
    c'est ce que fait déjà la fonction plxUtils:write utilisée dans l'écriture des statistiques.
    il faut plutôt essayer en ajoutant un lock exclusif sur le fichier, comme le montre cet exemple:
    http://www.htmlite.com/php043.php
    ah oui, je n'avais pas vu tout le détail de la fonction.
    je pense que le lock pourrait marcher ;)
  • GhuneGhune Member
    novembre 2010 modifié
    Pour l'instant, ça marche...
    Auparavant, ça se remettait à zéro de temps en temps, donc je vais attendre un peu avant de crier victoire !

    Je vous tiens au courant.
  • On dirait que c'est bon !

    p.s.
    Quand ce sera confirmé, faudra mettre à jour le wiki.
  • StéphaneStéphane Member, Former PluXml Project Manager
    oui faut pas crier victoire tout de suite

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Stéphane a écrit:
    Si quelqu'un à le temps de tester ça:

    Dans le fichier stats.php qui contient la class plxStats, dans la fonction _editStats remplacer la ligne:
    plxUtils::write($xml, $this->filename);
    
    par
    $f=fopen($this->filename,"w");
    flock($f, LOCK_EX);
    fwrite ($f, $xml);
    flock ($f, LOCK_UN);
    fclose($f);
    
    N'ayant pas le temps de tester, je ne sais pas du tout ce que ça peut donner.
    Bonsoir,

    il me semble que flock() ne passe pas sur l'hebergement gratuit de free, le serveur gererait lui même les risques de télescopage d'ecritures sur fichiers.
    - il y a d'ailleurs une version de bbclone "sans flock();", dédiée au serveur free qui fonctionne bien sans reset intempestif.

    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • StéphaneStéphane Member, Former PluXml Project Manager
    oui free à désactiver cette fonction

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Pour moi, ça a l'air d'être bon sur Free. Mes stats n'avaient jamais atteint un tel niveau. Je jetterai un oeil dessus les prochains jours mais je crois que ça marche.

    Effectivement, c'est un compte free... peut-être que c'est pour cette raison que ça fonctionne.
  • J'ai mis en place sur ovh, je vous tiens au courant ;)
  • bankaibankai Member
    Je suis sous OVH, je viens de le mettre à jour grâce à Stephane, pour le moment avec cette solution ça fonctionne.
  • BloodyBloody Member
    +1 avec Bankai. Je suis chez OVH aussi. :)
  • bankaibankai Member
    bon ben j'ai aussi arrêter cette solution car il revient à zéro au bou d'un mment.
  • GhuneGhune Member
    Oui, ca m'est arrive aussi, dommage...
    Une solution a court terme (histoire de voir combien de visiteurs vous avez eus les journees precedentes) mais pas a long terme a cause d'un manque de fiabilite.
Connectez-vous ou Inscrivez-vous pour répondre.