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 :

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 :

(Zip - 1.6 ko)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é.
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...
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. :)
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
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. :)
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+
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 : <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 : <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 : <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 : <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;
}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");
}Et en plus, je me plante. Dans refers.php3, il fallait écrire : debut_page(_T(’Les referants’).$pourarticle, "administration", "statistiques") ;
Je pense que cette contrib serait bonne pour la branche principale de SPIP...
Bonjour,
D’abord ... excellent ! Ce script !
Mais voulant suivre ton message, pour intégré referers.php3 dans les stats de spip, je me suis heurté à des messages d’erreurs concernant la function(_T(
((pour info je suis sous spip 1.51, je sais même pas si il y a un rapport, et suis total brêle en php))
_
Mais mais ... j’ai simplement sucré tous les : (_T ... et CA MARCHE !
Alors ... ben ça reste toujours excellent !! et son intégration aussi !!
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 ?
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.