// fabrikasso : Appelé par /index.php, /.services/popup_commentaires.php, /!participer/index.php
// laclefdeschamps : Appelé par /index.php
// tfa29 : Appelé par /accueil.php et /presentation.php
// gobelets-durables : Appelé par toutes les pages (04-03-2010 : modifcation nommage des fichiers et ajout du fichier brut)
// stop-pub-ecole : appelé par index.php
$script_name=strtolower($_SERVER['SCRIPT_NAME']); // echo $script_name." ";
$script_filename=strtolower($_SERVER['SCRIPT_FILENAME']); // echo $script_filename." ";
$racine = str_replace($script_name, '', $script_filename);
if ($rep_compteur == "") : $rep_compteur = "_compteur"; endif;
// ---------------------
// Calcul de la saison
// ---------------------
$jour=date(d,time()); $mois=date(m,time()); $annee=date(Y,time());
$heure=date(H,time()).":".date(i,time()).":".date(s,time());
if ( ($mois==3 AND $jour>20) OR ($mois>3 AND $mois<6) OR ($mois==6 AND $jour<21) ):
$saison="printemps";
$saison_long="du printemps";
elseif ( ($mois==6 AND $jour>20) OR ($mois>6 AND $mois<9) OR ($mois==9 AND $jour<21) ) :
$saison="ete";
$saison_long="de l'été";
elseif ( ($mois==9 AND $jour>20) OR ($mois>9 AND $mois<12) OR ($mois==12 AND $jour<21) ) :
$saison="automne";
$saison_long="de l'automne";
else :
$saison="hiver";
$saison_long="de l'hiver";
endif;
if ($mois==12 AND $jour>20) : $annee_corrigee=$annee+1; else: $annee_corrigee=$annee; endif;
// --------------------------
// Reconnaisance des robots
// --------------------------
// Eviter les doublons des "non robots" n'acceptant pas les cookies >>> commencer par déplacer de /n
// http://franck.michaud.free.fr//modules.php?name=Web_Crawler
// http://www.botsvsbrowsers.com
// http://www.user-agents.org/index.shtml
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) : // Ajouté le 21-06-2010 : en cas d'utilisation d'un proxy...
$IP=$_SERVER['HTTP_X_FORWARDED_FOR'];
$IPs=explode(" ",$IP);
$HOST = gethostbyaddr($IPs[count($IPs)-1]);
else :
$IP=$_SERVER['REMOTE_ADDR']; // Avant le 18-05-2009 : utilisation directe de la variable $REMOTE_ADDR
$HOST = gethostbyaddr($IP);
endif;
$AGENT = $_SERVER['HTTP_USER_AGENT']; // Rajouté le 17-12-2009
if ( eregi("page=http",$_SERVER['REQUEST_URI']) OR eregi("page=\%",$_SERVER['REQUEST_URI']) OR eregi("page=\.",$_SERVER['REQUEST_URI']) OR eregi("page=/",$_SERVER['REQUEST_URI']) ) :
$fichier=$annee_corrigee."-".$saison."_hacks";
elseif (
($_SERVER['HTTP_USER_AGENT']=="" AND $_SERVER['HTTP_REFERER']=="")
OR ereg("Spider",$_SERVER['HTTP_USER_AGENT'])
OR ereg("Voila",$_SERVER['HTTP_USER_AGENT'])
OR ereg("Yeti",$_SERVER['HTTP_USER_AGENT'])
OR eregi("crawl",$_SERVER['HTTP_USER_AGENT'])
OR eregi("bot",$_SERVER['HTTP_USER_AGENT'])
OR eregi("java",$_SERVER['HTTP_USER_AGENT'])
OR eregi("libwww",$_SERVER['HTTP_USER_AGENT']) // Ne faudrait-il pas rétirer ça ? S'agit-il d'un indice vraiment pertinent ?...
OR eregi("FeedChecker",$_SERVER['HTTP_USER_AGENT'])
OR eregi("FeedBurner",$_SERVER['HTTP_USER_AGENT'])
OR eregi("dragonfly",$_SERVER['HTTP_USER_AGENT'])
OR eregi("depspid",$_SERVER['HTTP_USER_AGENT'])
OR eregi("rtgi",$_SERVER['HTTP_USER_AGENT'])
//OR eregi("wordpress",$_SERVER['HTTP_USER_AGENT']) Plusieurs visites depuis serveur ovh... non automatisé car pas encore bien compris...
OR eregi("Indy Library",$_SERVER['HTTP_USER_AGENT'])
OR eregi("Microsoft URL Control",$_SERVER['HTTP_USER_AGENT'])
OR eregi("Yandex",$_SERVER['HTTP_USER_AGENT']) // Ajouté le 05-07-2009
OR (strlen($_SERVER['HTTP_USER_AGENT'])==11 AND substr($_SERVER['HTTP_USER_AGENT'],0,11)=="Mozilla/4.0") // Ajouté le 20-07-2009, redondances qui semble liées à des visites via un proxy d'entreprise
OR eregi("Charlotte",$_SERVER['HTTP_USER_AGENT']) // Ajouté le 20-07-2009
OR eregi("Netcraft",$_SERVER['HTTP_USER_AGENT']) // Ajouté le 20-07-2009
OR eregi("panscient",$_SERVER['HTTP_USER_AGENT']) // Ajouté le 01-10-2009
OR eregi("ScoutJet",$AGENT) // Ajouté le 17-12-2009
OR eregi("Snoopy",$AGENT) // Ajouté le 17-12-2009
OR eregi("Baidu",$AGENT) // Ajouté le 17-12-2009
OR eregi("DigExt; DTS Agent",$AGENT) // Ajouté le 17-12-2009
OR eregi("WordPress",$AGENT) // Ajouté le 10-01-2010
OR eregi("pythumbnail",$AGENT) // Ajouté le 10-01-2010
//Rajouter "38.99" dans la liste des HOSTNAME ? Non, couvert par l'agent.
// 2009-10-03 : Utilisez iptolong pour définir des plages d'adresses : http://www.webdeveloper.com/forum/showthread.php?t=160059
OR ereg("bot",$HOST) OR ereg("inktumi",$HOST) OR ereg("crawl",$HOST) OR ereg("search",$HOST) OR ereg("google",$HOST) OR ereg("keymachine.de",$HOST)
OR substr($HOST,0,8) == "82.99.30" // Munax [82.99.30.0 - 82.99.30.127] via http://www.db.ripe.net/whois
OR substr($HOST,0,10) == "208.80.193" // Websense [208.80.192.0 - 208.80.199.255] via http://ws.arin.net/whois
OR substr($HOST,0,10) == "208.80.194" // Websense [208.80.192.0 - 208.80.199.255] via http://ws.arin.net/whois
OR substr($HOST,0,10) == "208.80.195" // Websense [208.80.192.0 - 208.80.199.255] via http://ws.arin.net/whois
OR ereg("66.249.84",gethostbyaddr($_SERVER['REMOTE_ADDR'])) // Google [66.249.64.0 - 66.249.95.255] via http://ws.arin.net/whois
OR ereg("66.249.85",gethostbyaddr($_SERVER['REMOTE_ADDR'])) // Google [66.249.64.0 - 66.249.95.255] via http://ws.arin.net/whois
OR ereg("72.14.193.",gethostbyaddr($_SERVER['REMOTE_ADDR'])) // Google [72.14.192.0 - 72.14.255.255] via http://ws.arin.net/whois
OR ereg("72.14.195.",gethostbyaddr($_SERVER['REMOTE_ADDR'])) // Google [72.14.192.0 - 72.14.255.255] via http://ws.arin.net/whois
OR ereg("74.125.",gethostbyaddr($_SERVER['REMOTE_ADDR'])) // Google Inc. [74.125.0.0 - 74.125.255.255] via http://ws.arin.net/whois
OR substr($HOST,0,9) == "64.211.93" // Global Crossing [64.211.0.0 - 64.211.223.255] via http://ws.arin.net/whois
OR substr($HOST,0,5) == "208.0" // Vraiment pertinent ? C'est pas plutôt un FAI ? Sprint [208.0.0.0 - 208.35.255.255] via http://whois.domaintools.com/
OR substr($HOST,0,5) == "65.55" // Microsoft [65.55.0.0 - 65.55.255.255] via http://ws.arin.net/whois
OR substr($HOST,0,8) == "64.56.65" // Vrtservers [64.56.64.0 - 64.56.79.255] via http://ws.arin.net/whois
OR substr($HOST,0,9) == "64.69.33" // CoreExpress [64.69.32.0 - 64.69.47.255] via http://ws.arin.net/whois
OR substr($HOST,0,7) == "198.247" // NTT America [198.247.0.0 - 198.247.255.255] via http://ws.arin.net/whois
OR substr($HOST,0,7) == "131.107" // Microsoft [131.107.0.0 - 131.107.255.255] via http://ws.arin.net/whois
OR substr($HOST,0,10) == "69.147.234" // Nobis Technology Group [69.147.224.0 - 69.147.255.255]
OR substr($HOST,0,10) == "192.114.71" // Bezeq International [192.114.64.0 - 192.114.79.255] via http://www.db.ripe.net/whois
):
$fichier=$annee_corrigee."-".$saison."_robots";
elseif ( eregi("\?feed",$_SERVER['REQUEST_URI']) ):
$fichier=$annee_corrigee."-".$saison."_feeds"; // Pour Dotclear
else :
$fichier=$annee_corrigee."-".$saison;
endif;
$chemin=$racine."/".$rep_compteur."/".$fichier.".txt";
$cheminbrut=$racine."/".$rep_compteur."/".$fichier.",brut.txt";
// ----------------------
// Comptage des visites
// ----------------------
// Un seul souci : si accès direct à '!participer', pas de cookie, chaque page est mémorisée.
// >>> résolu via HTTP_REFERER != fabricasso ?
// Si c'est le premier hit de la session, si c'est pas du prefetch, et si on ne vient pas du site (pour éviter les doublons avec ceux qui n'acceptent pas du tout les cookies)
if(
isset($_COOKIE["visite"]) == 0
AND (!isset($_SERVER['HTTP_X_MOZ']) OR $_SERVER['HTTP_X_MOZ'] != 'prefetch') // Ajouté le 30-12-2009
AND substr($_SERVER['HTTP_REFERER'],7,strlen($_SERVER['HTTP_HOST'])) != $_SERVER['HTTP_HOST']
):
$membre="inconnu";
if (!empty($_GET["cqui"])) : $membre=$_GET["cqui"]." (url)"; endif; // Rajouté le 21-05-2009
if (isset($_COOKIE["qui"])) : $membre=$_COOKIE["qui"]; endif;
if (isset($_COOKIE["dc_User_ID"])) : $membre=$_COOKIE["dc_User_ID"]; endif; // 08-07-2009 : Ajouté pour DotClear (avec Plugin LoginCookies)
//$membre = ($_SESSION['profil'] < PROFIL_WRITER ? '[0-9]{3}' : $_SESSION['user']); // 08-09-2013 : Ajouté pour PluXml
if (!empty($_SESSION["user"])) : $membre = $_SESSION['user']; endif;
// Complète le fichier de comptage
$chaine=$annee."-".$mois."-".$jour." ".$heure;
$chaine.=" >>> IP: ".$IP;
$chaine.=" >>> HOST: ".$HOST;
$chaine.=" >>> WHO: ".$membre;
$chaine.=" >>> FROM: ".$_SERVER['HTTP_REFERER'];
$chaine.=" >>> AGENT: ".$AGENT;
if (substr($_SERVER['REQUEST_URI'],0,2)=="//") : $chaine.=" [R301]"; endif;
if (isset($_SERVER['HTTP_X_MOZ']) && $_SERVER['HTTP_X_MOZ'] == 'prefetch') : $chaine.=" [PREFETCH]"; endif; // Ajouté le 05-07-2009 // 30-12-2009 : A supprimer
//if (isset($_SESSION['precedent']) && $_SESSION['precedent'] == $_SERVER['REMOTE_ADDR']."+".$_SERVER['HTTP_REFERER']."+".$_SERVER['HTTP_USER_AGENT']) : $chaine.=" [DOUBLON?]"; endif; // Ajouté le 17-12-2009
if (!empty($_GET[erreur])) : $chaine.=" [ERREUR".$_GET[erreur]."]"; endif;
$chaine.="\n";
$hop1 = fopen($chemin,"a");
fputs($hop1,$chaine);
fclose($hop1);
$hop2 = fopen($cheminbrut,"a");
fputs($hop2,$chaine);
fclose($hop2);
//$_SESSION['precedent']=$_SERVER['REMOTE_ADDR']."+".$_SERVER['HTTP_REFERER']."+".$_SERVER['HTTP_USER_AGENT']; // Ajouté le 17-12-2009 pour essayer de détecter les doublons... à suivre...
endif;
// Lecture de la taille du fichier
$cpt = count(file($chemin));
// -------------------------
// Comptage des connexions
// -------------------------
// A moyen terme ne mémoriser que la 1ère connexion, via appel dans intermede.php (suivi géré via 3ème §)
if (!empty($_SESSION['pseudo'])) :
$chemin=$racine."/".$rep_compteur."/".$annee_corrigee."-".$saison."_connexions.txt";
// Complète le fichier de comptage
$chaine=$annee."-".$mois."-".$jour." ".$heure;
$chaine.=" >>> IP: ".$IP;
$chaine.=" >>> WHO!: ".($_SESSION['pseudo']);
$chaine.=" >>> FROM: ".$_SERVER['HTTP_REFERER'];
$chaine.="\n";
$hop = fopen($chemin,"a");
fputs($hop,$chaine);
fclose($hop);
endif;
// ------------------------------------
// Suivi de toutes les pages visitées
// ------------------------------------
$chemin=$racine."/".$rep_compteur."/".$annee_corrigee."-".$saison."_suivi.txt";
$chaine="";
if (substr($_SERVER['REQUEST_URI'],0,2)=="//") : $chaine.="R301 "; endif;
if (isset($_SERVER['HTTP_X_MOZ']) && $_SERVER['HTTP_X_MOZ'] == 'prefetch') $chaine.="PREFETCH ";
if (!empty($_GET[erreur])) $erreur=$_GET[erreur];
if (!empty($erreur)) $chaine.="ERREUR".$erreur." "; // Pour gérer les ERREUR ?!? (internes)
// Complète le fichier de comptage
$chaine.=$annee."-".$mois."-".$jour." ".$heure;
$chaine.=" >>> IP: ".$IP; // Avant le 21-05-2009 : utilisation directe de la variable $REMOTE_ADDR
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $chaine.=" (PROXY:".$_SERVER['REMOTE_ADDR'].")"; // Ajouté le 23-06-2010 : en cas d'utilisation d'un proxy...
$chaine.=" >>> FROM: ".$_SERVER['HTTP_REFERER'];
$chaine.=" >>> TO: ".$_SERVER['REQUEST_URI'];
$chaine.="\n";
$hop = fopen($chemin,"a");
fputs($hop,$chaine);
fclose($hop);
?>