Bonjour,
Je souhaiterais rajouter dans mes sites un petit système de statistiques. L'idée n'est pas de faire des statistiques complètes, cpanel et tout les outils qui vont avec le font très bien.
Ce que je voudrais c'est générer un tableau des visiteurs et une liste de leur provenance, pas plus pas moins, c'est je trouve largement suffisant.
Pour la visualisation des résultats, je n'est pas de problème particulier, par contre c'est le "marqueur" qui me préoccupe un peu plus.
En effet je voudrais que ce marqueur soit le plus rapide possible afin de ralentir au minimum la page.
Voilà ce que j'ai écrit pour l'instant :
j'ai utilisé les sessions pour filtrer les utilisateurs déjà présents des nouveaux, je pense que c'est pas mal, ça évite de faire tourner le script pour rien si l'utilisateur est déjà là.
Par contre, même si ce n'est que a la première connections j'ai quand même 4 requêtes mysql, et je doute un peu du domain='$referer' qui doit être un peu lourd sur un table qui peu vite grandir.
Je me demandais donc si ce n'est pas plus performant pour la partie referer d'utiliser des fichiers textes. Ou bien si il y d'autres méthodes plus appropriées.
Modifié par matmat (04 Jun 2008 - 01:22)
Je souhaiterais rajouter dans mes sites un petit système de statistiques. L'idée n'est pas de faire des statistiques complètes, cpanel et tout les outils qui vont avec le font très bien.
Ce que je voudrais c'est générer un tableau des visiteurs et une liste de leur provenance, pas plus pas moins, c'est je trouve largement suffisant.
Pour la visualisation des résultats, je n'est pas de problème particulier, par contre c'est le "marqueur" qui me préoccupe un peu plus.
En effet je voudrais que ce marqueur soit le plus rapide possible afin de ralentir au minimum la page.
Voilà ce que j'ai écrit pour l'instant :
if(!isset($_SESSION['statistic'])){
$_SESSION['statistic'] = true;
$date = date('Y-m-d',time());
if (preg_match(',google|yahoo|msnbot|crawl|lycos|voila|slurp|jeeves|antibot|nutch|ia_archiver|scooter|fluffy|teoma,i',
$_SERVER['HTTP_USER_AGENT'])) return;
$today = date('Y-m-d',time());
$result = mysql_query("SELECT id FROM statistics WHERE date='$date'");
list($same_day) = mysql_fetch_row($result);
if($same_day){
mysql_query("UPDATE statistics SET total=total+1 WHERE date='$date'");
}else{
mysql_query("INSERT INTO statistics (date, total) VALUES ('$date', '1')");
}
$referer = (isset($_SERVER['HTTP_REFERER']))? $_SERVER['HTTP_REFERER'] : '';
if($referer){
$result = mysql_query("SELECT id FROM referers WHERE domain='$referer'");
list($referer_id) = mysql_fetch_row($result);
if($referer_id){
mysql_query("UPDATE referers SET total=total+1 WHERE id='$referer_id'");
}else{
mysql_query("INSERT INTO referers (domain, total) VALUES ('$referer', '1')");
}
}
}
j'ai utilisé les sessions pour filtrer les utilisateurs déjà présents des nouveaux, je pense que c'est pas mal, ça évite de faire tourner le script pour rien si l'utilisateur est déjà là.
Par contre, même si ce n'est que a la première connections j'ai quand même 4 requêtes mysql, et je doute un peu du domain='$referer' qui doit être un peu lourd sur un table qui peu vite grandir.
Je me demandais donc si ce n'est pas plus performant pour la partie referer d'utiliser des fichiers textes. Ou bien si il y d'autres méthodes plus appropriées.
Modifié par matmat (04 Jun 2008 - 01:22)