SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Administration > Statistiques > Archives Statistiques

Afficher les referers par domaine

samedi 26 avril 2003, par ben.spip. Dernier ajout mercredi 29 septembre 2004


Dans l’espace privé, il est possible de voir tous les referants. Cette contrib permet de ne montrer que le domaine des referants.


En début du script vous trouverez des variables à personaliser selon la fréquentation de votre site :

Pour l’installation : placer le fichier dans le répertoire ecrire.

Et cela donne ceci :

Documents joints


Répondre à cet article

  • > Afficher les referers par domaine

    24 novembre 2003 11:57

    OH, une injection : Warning : unable to parse url (file :///D :/mails/Busquedas%20por%20programas%20multibuscadores/santiago%20gisbert/multi%20fr/zzmerge.html) in /var/www/clx.anet.fr/spip/ecrire/referers.php3 on line 59

    Ligne 59, on trouve : $url = parse_url($referer) ;^M

    Autrement dit, le contenu de la variable n’est pas checké.

    Répondre à ce message

    Retour au début des forums

  • > Afficher les referers par domaine

    2 septembre 2003 16:04, par zéta

    bonjour, ne serait-ce pas possible d’afficher les referers tels qu’ils apparaissent en privé, c’est à dire avec les liens correspondants, je trouve ca tres interessant de savoir ce qu’on tapé les visiteurs dans google & co...

    Répondre à ce message

    • > Afficher les referers par domaine 2 septembre 2003 18:36

      Le détail des requêtes se trouve dans le listing par défaut de spip justement. Cela dit, ce serait la classe si l’on pouvait avoir une espèce d’arborescence dynamique des referers :
      - Au premier niveau, on accède aux referers par domaine, soit le résultat affiché actuellement par ce script.
      - Au second niveau (que l’on déplie ou replie) , on accède au détail des visites venant du domaine avec notamment les mots clés, lorsqu’il s’agit d’un moteur de recherche.

      Bref, une sorte de mix entre ce script et le menu dynamique de Hoizey. :)

      Répondre à ce message

      • > Afficher les referers par domaine 5 septembre 2003 10:47, par zeta

        perso, j’en demande pas tant... juste le script pour afficher la page des referers dans son intégralité, telle qu’elle apparait en privé... comme cette page existe déja... peut on la passer dans l’espace public tout simplement ?? (la page globale avec tous les referers depuis le début, pas la page quotidienne)...n’étant pas dev, je ne vais pas non plus demander à ce qu’on rajoute des menus déroulants ;-) amicalement

        Voir en ligne : splog

        Répondre à ce message

    Retour au début des forums

  • Vraiment sympa ce script. Il serait mieux encore s’il ne faisait pas de distiction entre : http://www.monreferer.com et http://monreferer.com

    mais le distingo est peut-être fait en amont, je n’en sais rien. :)

    Répondre à ce message

    • > Afficher les referers par domaine 2 septembre 2003 18:40

      Bonjour,

      Lors de l’échec de la résolution DNS, serait-il possible tout de même de grouper les referers par IP ? Le cas se présente pour moi assez souvent avec les serveurs de hotmail (suite à l’annonce des nouveautés typiquement).

      a+

      Répondre à ce message

    Retour au début des forums

  • > Afficher les referers par domaine sur le site

    26 juillet 2003 20:04, par BoOz

    Salut,

    Pour ceux que ca interresse voici la réécriture du script en filtre pour mes_fonctions.php3

    Ceci permet d’afficher le script sur le site public en ajoutant [(#URL_SITE|referers)] ou on veux dans un squelette.

    @+

    /*
    *   +---------------------------------------------+
    *    Nom du Filtre : Filtre REFERERS
    *   +---------------------------------------------+
    *    Date : 2003
    *    Auteur : BoOz d'après un code original de Ben
    *    
    *   +---------------------------------------------+
    *    Fonctions de ce filtre :
    *     Affiche les référents du site
    *     Appelez le dans vos squellette tout simplement
    *     par : [(#URL_SITE|referers)]
    *   +---------------------------------------------+
    *  
    * Pour toute suggestion, remarque, proposition d'ajout
    * reportez-vous au forum de l'article :
    * http://www.uzine.net/spip_contrib/article.php3?id_article=133
    *
    */


    function referers($resultat){
    //Pourcentage maxi pour le rouge
            $max=6;
            $maxToday=10;
    // Pourcentage mini ... (le reste est dans autres)
            $min=0.5;
            $minToday=3;
    // nombre de recherche maxi dans la table
            $maxiTable=1000;

    $m1 = microtime();





    $resultat="<br><br><br>Les referants";




    $resultat.="<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";



    $total=0;
    $total_jour=0;
    $hash=array();
    $hashJour=array();
    // TOUS LES REFERANTS

            // Affichage des referers
            $table = "spip_visites";
            $table_ref = "spip_referers";
            $where=1;
           
            //$query = "SELECT * FROM $table_ref WHERE $where ORDER BY visites GROUP BY referer_md5 DESC LIMIT 0,$maxiTable";
            $query = "SELECT * FROM $table_ref WHERE $where GROUP BY referer_md5  ORDER BY visites  DESC LIMIT 0,$maxiTable";
            $resultat = "";
            $result = spip_query($query);
            $total=0;
            while ($row = spip_fetch_array($result)) {
                    $referer = $row['referer'];
                    $visites = $row['visites'];
                    $visites_jour = $row['visites_jour'];
                                   
                    //on recupere le host (le debut) de l adresse
                    $url = parse_url($referer);
                    $host=$url['host'];
                                           
                    // on ajoute le nombre de visite a la cle host
                    $hash[$host]+=$visites;
                   
                    if ($visites_jour >0 ) {
                            $hashJour[$host]+=$visites_jour;
                    }
                                           
                    // on garde le nombre de visites total pour le pourcentage
                    $total+=$visites;
                    $total_jour+=$visites_jour;
            }       

    $chaine="";
    if ( $hash and $total!=0 ) {
            // on se met au debut
            reset ($hash);
           
            // on trie (dans l ordre inverse)
            arsort($hash);
            $tot=0;
                   
            while (list ($key, $visites) = each ($hash)) {
                    // calcul du pourcentage
                    $pourcent=($visites*100/$total);
                    // on affiche en rouge si superieur a 10%
                    if ( $pourcent> $max) {
                            $chaine.= "<li><font color='red'>$visites liens : &nbsp;<a title=\"Aller a $key\" href=\"http://".strip_tags($key)."\">$key</a> (".sprintf("%3.1f",$pourcent)." %)</font>";
                            //total pour afficher le pourcentage du reste
                            $tot+=$visites;
                    }
                    //et si il y a au moins min visites, on affiche
                    else if ($pourcent > $min ) {
                            $chaine.= "<li>$visites liens : &nbsp;<a title=\"Aller a $key \" href=\"http://".strip_tags($key)."\">$key</a>    (".sprintf("%3.1f",$pourcent)." %) ";
                            //total pour afficher le pourcentage du reste
                            $tot+=$visites;
                    }
            }
            $chaine.= "<li>".($total-$tot)." liens : autres (<$min %) (".sprintf("%2.0f",(($total-$tot)*100/$total))." % du total) ";
    }



    $chaine2="";
    if ( $hashJour and $total_jour!=0 ) {

            // on se met au debut
            reset ($hashJour);
           
            // on trie (dans l ordre inverse)
            arsort($hashJour);
            $tot=0;
            while (list ($key, $visites) = each ($hashJour)) {
                    // calcul du pourcentage
                    $pourcent=($visites*100/$total_jour);
           
                    // on affiche en rouge si superieur a 10%
                    if ( $pourcent> $maxToday) {
                            $chaine2.= "<li><font color='red'>$visites liens : &nbsp;<a title=\"Aller a $key\" href=\"http://".strip_tags($key)."\">$key</a> (".sprintf("%3.1f",$pourcent)." % du total)</font>";
                            //total pour afficher le pourcentage du reste
                            $tot+=$visites;
                    }
                    //et si il y a au moins deux visites, on affiche
                    else if ($pourcent > $minToday ) {
                            $chaine2.= "<li>$visites liens : &nbsp;<a title=\"Aller a $key \" href=\"http://".strip_tags($key)."\">$key</a>    (".sprintf("%3.1f",$pourcent)." % du total) ";
                            //total pour afficher le pourcentage du reste
                            $tot+=$visites;
                    }
            }
            $chaine2.= "<li>".($total_jour-$tot)." liens : autres (<$minToday %) (".sprintf("%2.0f",(($total_jour-$tot)*100/$total_jour))." % du total) ";
    }       


                    $m2 = microtime();
                    list($usec, $sec) = explode(" ", $m1);
                    list($usec2, $sec2) = explode(" ", $m2);
                    $dt = $sec2 + $usec2 - $sec - $usec;
                    $tt += $dt;
                    $timeString= "Calculee en ".sprintf("%3f", $dt);

    $resultat.="<table cellspacing='5' align=right valign=top><tr><td><FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
    $resultat.="<B>Tous les referants</B> <br>$chaine ";
    $resultat.="</td><td valign=top><FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'><B>Les referants du jour</B><br>$chaine2</font>";
    $resultat.="<tr><td colspan=2><FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>$timeString</td></tr>" ;

    $resultat.="<TR><TD>";
    $resultat.="</TD></TR>";
    $resultat.="</table>";

    $resultat.="</FONT>";

    return $resultat;
    }

    Répondre à ce message

    Retour au début des forums

  • Pour être tout à fait complêt et intégrer la page dans la rubriques administration statistiques, il faut modifier l’entête du fichier "referers.php3" comme suit :

    debut_page(_T('Les referants').$pourarticle, "administration", "referants");

    echo "<br><br><br>";
    gros_titre(_T("Les referants"));
    barre_onglets("statistiques", "referants");

    et inc_presentation (fonction barre_onglets) de la sorte :

           if ($rubrique == "statistiques"){
                   onglet(_T('onglet_evolution_visite'), "statistiques_visites.php3", "evolution", $onglet, "statistiques-24.gif");
                   onglet(_T('onglet_repartition_rubrique'), "statistiques.php3", "repartition", $onglet, "rubrique-24.gif");

    onglet(_T('par domaine'),"referers.php3", "referants", $onglet, "referers-24.gif");

                   $activer_statistiques_ref = lire_meta("activer_statistiques_ref");
                   if ($activer_statistiques_ref != "non") onglet(_T('onglet_origine_visites'), "statistiques_referers.php3", "referers", $onglet, "referers-24.gif");
           }

    Répondre à ce message

    Retour au début des forums

  • Mais moi je verais plutôt ça dans la partie des visiteurs, un petit bloc, pour remercier ceux qui font des liens ... vous avez une idée ?

    Répondre à ce message

    Retour au début des forums

  • > Afficher les referers par domaine

    15 mai 2003 01:20, par Arpol

    Hello, j’ai essayé le script joint : ça marche nickel pour la colonne de gauche, mais celle de droite avec les sites du jour est toujours vide !!! ... kesako ? A.

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net