Il existe de nombreux moyens d'avoir des mesures d'audience de nos sites web. Cela peut se faire par analyse des fichiers de traces (logs) du serveur web (lorsque celui-ci est rendu accessible par l'hébergeur), via l'intermédiaire d'un site de mesure d'audience ou par ses propres moyens.
Comme nous l'avons vu, avec les variables prédéfinies
[c'est quoi?], il est possible de glaner quelques informations sur "celui" qui, en visitant une page de votre site, exécute un script PHP (sans vraiment en avoir conscience).
Pour stocker en base de données ces informations, il suffit au préalable de créer une table
[comment?] avec la requête suivante
CREATE TABLE mesureaudience (ipvisiteur VARCHAR(15),
hostvisiteur VARCHAR(64),
url VARCHAR(256),
useragent VARCHAR(256),
referrer VARCHAR(256),
datevisite DATETIME,
UNIQUE(ipvisiteur,datevisite))
et d'inclure dans chaque page du site le bout de code suivant (idéalement par un simple
include_once("mesureaudience_inc.php")). Notez que, si votre site suit la structure décrite dans le chapitre "Mise en Page/Frames", il suffit de mettre l'instruction
include() dans le fichier contenant l'en-tête du site pour qu'il soit appelé de n'importe quelle page du site.
<?php
$BD_serveur = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse = "";
$BD_base = "mabase";
if (@mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)) {
if (@mysql_select_db($BD_base)) {
$sql = "INSERT INTO mesureaudience (ipvisiteur, hostvisiteur, url, useragent, referrer, datevisite) ".
" VALUES('".$_SERVER["REMOTE_ADDR"]."',".
"'".addSlashes(getHostByAddr($_SERVER["REMOTE_ADDR"]))."',".
"'".addSlashes($_SERVER["REQUEST_URI"])."',".
"'".addSlashes($_SERVER["HTTP_USER_AGENT"])."',".
"'".addSlashes($_SERVER["HTTP_REFERER"])."',".
"NOW())";
@mysql_query($sql);
}
@mysql_close();
}
?>
|
- La fonction getHostByAddr() permet de convertir une adresse IP (au format XXX.XXX.XXX.XXX) en un nom de machine (plus lisible). En revanche, elle peut être relativement longue (donc affecter les performances de votre site).
- Chaque fonction appelée dans le code inclus est précédé d'un @ ceci afin de masquer un éventuel message d'erreur (inutile de poluer la mise en page du site si nous n'avons pu stocker l'information. Il ne s'agit que de statistiques).
- Vous avez maintenant des données brutes qu'il convient d'analyser. Vous devrez différencier les visiteurs humains (qui vous intéressent), des robots des moteurs de recherche ("spiders"), des aspirateurs de site. Pour cela, vous pourrez vous appuyer sur le User-agent (d'où l'interêt de le stocker).
- Telle qu'elle est définie, la table n'autorise qu'un seul enregistrement lié à une adresse IP à un instant donné (à la seconde près) mais il peut arriver que plusieurs pages soient consultées au même instant (notamment dans le cas du passage d'un robot ou d'un aspirateur de site).
|