|
Il est toujours utile de savoir d'où viennent les visiteurs
de votre site, afin de découvrir les mots-clés les
plus fréquemment tapés dans un moteur de recherche pour y
parvenir, ou quels sont les sites qui parlent du vôtre.
Le script que
nous vous proposons ici va un peu plus loin : il prend tout d'abord
soin de sauver les adresses de provenance de vos visiteurs dans
un fichier se trouvant sur votre serveur, mais vous permet aussi
d'afficher ces adresses sur votre site. En effet, cette information
supplémentaire peut se révéler utile pour vos visiteurs,
que ce soit pour aller vers des sites sur le même sujet...
ou par simple curiosité.
Voici le code
:
<?php
$referants = "reffichier.html";
if ( isset($HTTP_REFERER)
&& ($HTTP_REFERER != "")
&& ($HTTP_REFERER != "bookmarks") )
{
$ref_court = preg_replace("/http:\/\//","", $HTTP_REFERER);
$ref_court = preg_replace("/\/.*/", "", $ref_court);
if ( ($ref_court != "monsite.com")
&& ($ref_court != "www.monsite.com")
&& ($ref_court != "bookmarks") )
{
$ref_long = preg_replace("/&/", "&", $HTTP_REFERER);
$reffichier = fopen($referants,'a');
fwrite($reffichier, "<a href=\"$ref_long\">$ref_court</a><br>\n");
fclose($reffichier);
}
}
if (file_exists($referants))
{
$refarray = file($referants);
$refarray = array_reverse($refarray);
for ($i=0; $i<=10; $i++)
{
echo $refarray[$i];
}
}
?>
f
Après
avoir déclaré la variable contenant le nom du fichier
à utiliser pour stocker nos référents, nous testons que nous
avons effectivement accès à l'adresse de la page d'origine
grâce à l'existence de la variable
prédéfinie $HTTP_REFERER,
et le fait qu'elle ne soit pas vide, ou ne contienne pas que "bookmarks"
(ce qui signifierait que l'utilisateur a utiliser ses favoris, ce
qui ne nous intéresse pas...).
Ceci fait, nous
retirons le contenu superflu de cette variable pour n'en garder
que la substantifique moelle : le nom du site d'origine. Cela nous
servira pour afficher le lien, qui renverra sur l'adresse complète.
Pour retirer "http://"
et les répertoires d'origine, nous faisons appel aux expressions
rationnelles, et donc à la fonction preg_replace(),
qui nous permet de résoudre ce problème en un tournemain.
Second test
: s'il se trouve que le visiteur vient directement de notre propre
site (sous ses différentes incarnations), on arrête
là. Dans le cas contraire, on utilise à nouveau les
expressions rationnelles pour rendre nos adresses de référents
affichable en bon HTML.
On créé
ensuite une session de fichier à l'aide de fopen(),
puis nous écrivons à la suite de notre fichier le
lien HTML qui sera affiché en définitif sur notre
page avec fwrite(), et fermons enfin
notre session de fichier avec fclose().
Seconde partie de notre script : l'affichage lui-même. Il
est fait très simplement : après avoir testé
l'existence du fichier requis, on stock son contenu sous forme de
tableau au sein d'une nouvelle variable $refarray,
on inverse ce tableau avec array_reverse()
afin de toujours avoir le dernier référant (celui
qui est à la fin du fichier) au début du tableau,
puis on affiche effectivement nos 10 derniers référents à
l'aide d'un simple boucle for().
Il ne reste plus qu'à appeler ce script sur toutes les pages
où vous voulez le voir apparaître, au moyen de la commande
include()
par exemple.
Le code peut être amélioré ici et là
: essayez par exemple d'empêcher le fichier de dépasser
les 100 Ko...
|