Beaucoup de logiciels d'analyse des visites utilisent un code javascript pour "tracker les visites". Du coup vous ne voyez pas toutes les visites de votre site.
Ici on vous propose un code php donc on track vraiment toutes les visites (visiteurs et robots).
Cet ouil est en devellopement donc il peut comporter des erreurs, merci de les rapporter ici : viewforum.php?f=20
Pour le moment on met en place les fonctions, on verra après pour la mise en page.
Pour que l'outil fonctionne vous devez placer le script "track_visites.php" à la racine de votre site ou ailleur (à tester). Puis vous devez l'inclure dans toutes vos pages. Par exemple si vous utilisez Wordpress, faites l'include en haut du fichier "wp-config.php".
Voici le code PHP :
- Code: Tout sélectionner
<?php
##################################################################
## SCRIPT Track Visites & Bot par Nicolas Sotton pour la GHS Team#
## https://www.ghstools.fr/ ######################################
##################################################################
$file = 'visitesGHS.txt';
$time = date('d/m/Y H:i:s');
$fichier = fopen($file,'a+');
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$referer = "Direct";
$user_agent = "N/A";
$robot = "N/A";
$os = "N/A";
$version_os = "N/A";
$ip = "N/A";
if(isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
/*echo "Ip : ".$ip."<br>";
$name = gethostbyaddr($ip);
echo "Name : ".$name."<br>";
//on recup le host
$host = gethostbyname($name);
echo "host : ".$host."<br>";*/
}
//on controle si ya l'user agent
if(isset($_SERVER['HTTP_USER_AGENT'])) {
//ya bien le referer
$user_agent = addslashes($_SERVER['HTTP_USER_AGENT']);
//on check si c'est des robots
if(preg_match("#(Photon)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(MJ12bot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Twitterbot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Applebot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(LivelapBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(MetaURI API)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(PaperLiBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Mail\.RU_Bot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Googlebot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(AhrefsBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(bingbot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(AndersPinkBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(tweetedtimes)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(SurdotlyBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(^WordPress)/#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(adstxtlab)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Yahoo! Slurp)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(YandexImages)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Cliqzbot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Apache-HttpClient)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(DotBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Qwantify)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(heritrix)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Pearltrees)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(SeznamBot)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Sogou web)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(BoardReader)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(ping\.blo\.gs)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Feedly)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Java)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(^PHP)/#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(^jetmon)/.+#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(YOURLS)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Tiny RSS)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(SimplePie)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(Clearbricks)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
} elseif(preg_match("#(FreshRSS)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$robot = trim($match[1]);
}
//on check quel navigateur est utilisé
//Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:54.0) Gecko/20100101 Firefox/54.0
//Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
if(preg_match("#\((.+);(.+);.+\)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$os = trim($match[1]);
$version_os = trim($match[2]);
}elseif(preg_match("#\((.+);.+rv:(.+)\)#iU", $_SERVER['HTTP_USER_AGENT'], $match)) {
$os = trim($match[1]);
$version_os = trim($match[2]);
}
}
//on controle si ya le refrer
if(isset($_SERVER['HTTP_REFERER'])) {
$referer = addslashes($_SERVER['HTTP_REFERER']);
}
fwrite($fichier, "Time:{$time} URL:{$url} IP:{$ip} ROBOT:{$robot} OS:{$os} VERSION OS:{$version_os} AGENT:{$user_agent} REFERER:{$referer}\n\r");
fclose($fichier);
##################################################################
## SCRIPT Track Visites & Bot par Nicolas Sotton pour la GHS Team#
## https://www.ghstools.fr/ ######################################
##################################################################
?>
Rendez vous ensuite dans GHS Tools, dans le menu cliquez sur "Gestion des visites" vous voyez le tableau des visites et des statistiques
On ne fait pas celà pour vous espionner, on enregistre rien. On scrap simplement le fichier "visitesGHS.txt" créé à la racine de votre site à chaque chargement pour interpréter vos données.
Si vous avez besoin d'autres fonctions faite le savoir ici.