|  | Retour à la liste des exercices
// -------------------------------------- //
// Kietu? Statistiques de fréquentations. //
// -------------------------------------- //
// Version : 3.2                          //
// Auteur  : Fabien Regost                //
// Web     : http://www.kietu.net         //
// -------------------------------------- //
/*
Copyright (C) 2002-2003 Fabien Regost
Distribué sous licence GNU GPL
Nom du fichier : hit.php
Modification   : 26/02/04 18:37
*/
// Récupération des variables
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) & $_SERVER['HTTP_X_FORWARDED_FOR']!='')
{
 $kietu['remote_addr']=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
 $kietu['remote_addr']=$_SERVER['REMOTE_ADDR'];
}
$kietu['http_user_agent']=$_SERVER['HTTP_USER_AGENT'];
if (!isset($_GET['website'])||$_GET['website']=='')
{
 $kietu['website']=$website;
}
else
{
  $kietu['website']=mysql_real_escape_string($_GET['website']);
}
$kietu['appel']=$_GET['appel'];
//$kietu['http_referer']=mysql_real_escape_string($_SERVER['HTTP_REFERER']);
//$kietu['referimg']=mysql_real_escape_string($_GET['referimg']);
//$kietu['php_self']=mysql_real_escape_string($_SERVER['PHP_SELF']);
if (isset($url_hit)&$url_hit!='') {$kietu['url_hit']=$url_hit;} else {$kietu['url_hit']=mysql_real_escape_string($_GET['url_hit']);}
$kietu['cookie']=$_COOKIE['kie_coo_'.kie_CheckValidName($kietu['website'])];
// Definition fonction
function kie_CheckValidName($str1)
{ 
 $invalide = array('.','é','è','\\','/',':','*','?','"','<','>','|'); 
 $i=0; 
 while ($invalide[$i])
 { 
  $str1 = strtr($str1, $invalide[$i], '_'); 
  $i++; 
 }
 return $str1; 
}
// Configuration
//Modification 03/02/2010 : faille depuis $_GET['url_hit']
/*
if (file_exists($kietu['url_hit'].'config.php'))
{
 require ($kietu['url_hit'].'config.php');
}
if (file_exists($kietu['url_hit'].'define/moteur.php'))
{
 require ($kietu['url_hit'].'define/moteur.php');
}
*/
require("./kietu/config.php");
require("./kietu/define/moteur.php");
//Fin modif 03/02/2010
// Verification cookie
if ($kietu['cookie']!=1)
{
 // Fonctions (Telechargées sur www.phpapps.org / Créées pas samsauce@lycos.fr / Modifiées)
 function kie_systeme($agent)
 {
  if (eregi('(win|windows) ?(9x ?4\.90|Me)', $agent)) return 14;
  if (eregi('(win|windows) ?(98)', $agent)) return 19;
  if (eregi('(win|windows) ?(2000)', $agent)) return 17;
  if (eregi('(win|windows) ?(95)', $agent)) return 18;
  if (eregi('(win|windows) ?(NT)', $agent))
  {
   if (eregi('(win|windows) ?NT ?(5\.1|6(\.0)?)', $agent)) return 15;
   if (eregi('(win|windows) ?NT ?(5(\.0)?)', $agent)) return 17; return 16;
  }
  if (eregi('(win|windows) ?XP', $agent)) return 15;
  if (eregi('(win|windows)', $agent)) return 13;
  if (eregi('(linux)', $agent)) return 12;
  if (eregi('SunOs', $agent)) return 10;
  if (eregi('(freebsd|openbsd|netbsd)', $agent)) return 9;
  if (eregi('(AIX)', $agent)) return 8;
  if (eregi('(QNX)', $agent)) return 21;
  if (eregi('(HP-UX)', $agent)) return 7;
  if (eregi('(IRIX)', $agent)) return 6;
  if (eregi('(unix|x11)', $agent)) return 5;
  if (eregi('(mac|ppc)', $agent)) return 4;
  if (eregi('beos', $agent)) return 3;
  if (eregi('os/2', $agent)) return 2;
  if (eregi('(bot|google|slurp|scooter|spider|infoseek|arachnoidea|altavista)', $agent)) return '01';
  if (eregi('tv', $agent)) return 20;
  return 0;
 }
 function kie_navigateur($agent)
 {
  $kie_liste_navigateurs=array('5'=>'Amaya','6'=>'AOL','7'=>'AvantGo','8'=>'Bluefish','9'=>'Dillo','10'=>'Galeon','11'=>'iCab','12'=>'ICEBrowser','13'=>'Konqueror','14'=>'Lynx','15'=>'Opera','16'=>'Oregano','17'=>'WebTv','18'=>'Wget','19'=>'Safari','20'=>'Kanari');
  for ($kie_i=5, $kie_type_navigateur='';$kie_i<=19;$kie_i++) if (eregi($kie_liste_navigateurs[$kie_i] . '[ \/]([0-9\.]+)', $agent, $kie_version)) return $kie_i.'**'.$kie_version[1];
  if (eregi('MSIE[ \/]([0-9\.]+)', $agent, $kie_version)) return '4**'.$kie_version[1];
  if (eregi('Mozilla/([0-9.]+)', $agent, $kie_version) && !eregi('compatible', $agent)) {
   if (eregi('netscape[[:alnum:]]*[/\ ]([0-9.]+)', $agent, $kie_version))  return '2**'.$kie_version[1];
   if (eregi('rv:([0-9.]+)', $agent, $kie_version) || eregi('[^[]]m([0-9.]+)',$agent, $kie_version)) return '3**'.$kie_version[1];
   return '2**'.$kie_version[1];
  }
  if (eregi('(bot|google|slurp|scooter|spider|infoseek|arachnoidea|altavista)', $agent)) return '1**0';
  return '0**0';
 }
 // Initialisation de mySQL
 mysql_connect($kietu_mysql_address,$kietu_mysql_user,$kietu_mysql_pass) or die('Connexion impossible.');
 mysql_select_db($kietu_mysql_database) or die('Erreur connexion à la BDD');
$kietu['http_referer']=mysql_real_escape_string($_SERVER['HTTP_REFERER']);
$kietu['referimg']=mysql_real_escape_string($_GET['referimg']);
$kietu['php_self']=mysql_real_escape_string($_SERVER['PHP_SELF']);
 $kie_heure=date('Y-m-d', mktime(date('H') + $kie_decalage));
 $kie_heure2=date('H', mktime(date('H') + $kie_decalage));
 // Navigateur
 $kie_browser=kie_navigateur($kietu['http_user_agent']);
 $kie_browser=explode('**',$kie_browser);
 $kie_browser_type=mysql_real_escape_string($kie_browser[0]);
 $kie_browser_ver=mysql_real_escape_string(strtr($kie_browser[1],'.',''));
 // OS
 $kie_os=mysql_real_escape_string(kie_systeme($kietu['http_user_agent']));
 // Requete de verification
 $kietu['website']=substr($kietu['website'], 0, 10);
 $kie_temp=$kietu['remote_addr'];
 $kie_temp2=mysql_real_escape_string($kietu['website']);
 $kie_query='SELECT id FROM kietu_visit WHERE site=\''.$kie_temp2.'\' AND nav=\''.$kie_browser_type.'\' AND navver=\''.$kie_browser_ver.'\' AND sys=\''.$kie_os.'\' AND date=\''.$kie_heure.'\' AND LEFT(ip,9)=\''.substr($kie_temp,0,9).'\' LIMIT 1';
 $kie_result=mysql_query($kie_query) or die('Erreur controle visiteur deja passé');
 $kie_nbr_enr=mysql_num_rows($kie_result);
 // Envoi dans les BDD selon le résultat
 if ($kie_nbr_enr==0)
 {
  // Référant
  if ($kietu['appel']=='img')
  {
   $kietu_temp=str_replace('**','?',$kietu['referimg']);
   $kie_refer=str_replace('*','&',$kietu_temp);
   if ($kie_refer=='')
   {
    $kie_refer='Inaccessible (appel du script par une image)';
   }
  }
  else
  {
   $kie_refer=$kietu['http_referer'];
  }
  $kietu_temp=parse_url($kie_refer);
  $kie_from=$kietu_temp['host'].$kietu_temp['path'];
  $kie_from=mysql_real_escape_string(substr($kie_from,0,strrpos($kie_from,'/')));
  if($kie_from=='')
  {
   $kie_from='Lien direct';
  }
  if (is_array($kietu_ref_a_ignorer))
  {
   while(list($kie_key, $kie_value)=each($kietu_ref_a_ignorer))
   {
    $kie_temp2=parse_url($kie_value);
    if ($kietu_temp['host']==$kie_temp2['host'])
    {
     $kie_from='Ignoré';
    }
   }
  }
  else
  {
   $kie_temp2=parse_url($kie_ref_a_ignorer);
   if ($kietu_temp['host']==$kie_temp2['host']&$kietu_temp!='')
   {
    $kie_from='Ignoré';
   }
  }
  // Insertion BDD n°1 (kietu_visit)
 
  $kie_temp=mysql_real_escape_string($kietu['remote_addr']);
  $kie_temp2=mysql_real_escape_string($kietu['website']);
  $kie_query='INSERT INTO kietu_visit (site, ip, nav, navver, refer, sys, date) VALUES (\''.$kie_temp2.'\', \''.$kie_temp.'\',\''.$kie_browser_type.'\', \''.$kie_browser_ver.'\', \''.$kie_from.'\', \''.$kie_os.'\', \''.$kie_heure.'\')';
  $kie_result=mysql_query($kie_query) or die('Erreur insertion dans la BDD');
  $kie_id=mysql_insert_id();
 
  // Recherche du domaine
 
  $kie_temp=@gethostbyaddr($kietu['remote_addr']);
  $kie_domaine=mysql_real_escape_string(strtolower(strrchr ($kie_temp, '.')));
  if ($kie_temp==$kietu['remote_addr'])
  {
   $kie_domaine='IP';
  }
 
  // Insertion BDD n°2 (kietu_domai)
 
  $kie_temp2=mysql_real_escape_string($kietu['website']);
  mysql_query('UPDATE kietu_domai SET nombre=nombre + 1 WHERE site=\''.$kie_temp2.'\' AND domaine=\''.$kie_domaine.'\' AND date=\''.$kie_heure.'\' LIMIT 1');
  if(mysql_affected_rows()==0)
  { 
   mysql_query('INSERT INTO kietu_domai (site, domaine, nombre, date) values (\''.$kie_temp2.'\', \''.$kie_domaine.'\', 1,\''.$kie_heure.'\')') or die('Erreur insertion domaines');
  }
 }
 // Page demandée + Insertion BDD n°3 (kietu_pages)
 if ($kietu['appel']=='img')
 {
  $kie_dem=parse_url($kietu['http_referer']);
 }
 else
 {
  $kie_dem=parse_url($kietu['php_self']);
 }
 $kie_request=$kie_dem['path'].$kie_dem['query'];
 $masque='^([[:alnum:]/_\.-]*)index.([[:alpha:]])+$';
 if (ereg($masque,$kie_request,$recup)==true)
 {
  if ($recup[1]=='')
  {
   $kie_request='/';
  }
  else
  {
   $kie_request=$recup[1];
  }
 }
 if (isset($kietu['psefra']) & $kietu['psefra']!='')
 {
  $kie_request .=' '.htmlspecialchars($kietu['psefra']);
 }
 $kie_request=substr($kie_request,0,50).mysql_real_escape_string($_GET['page']);
 
 $kie_temp2=$kietu['website'];
 mysql_query('UPDATE kietu_pages SET nombre=nombre+1 WHERE site=\''.$kie_temp2.'\' AND pages=\''.$kie_request.'\' AND date=\''.$kie_heure.'\' LIMIT 1');
 if(mysql_affected_rows()==0)
 { 
  mysql_query('INSERT INTO kietu_pages (site, pages, nombre, date) values (\''.$kie_temp2.'\', \''.$kie_request.'\', 1,\''.$kie_heure.'\')') or die('Erreur insertion pages');
 }
 // Page par heure + Insertion BDD n°4 (kietu_heure)
 $kie_temp2=mysql_real_escape_string($kietu['website']);
 mysql_query('UPDATE kietu_heure SET '.$kie_heure2.'_h='.$kie_heure2.'_h + 1 WHERE site=\''.$kie_temp2.'\' AND date=\''.$kie_heure.'\' LIMIT 1');
 if(mysql_affected_rows()==0)
 { 
  mysql_query('INSERT INTO kietu_heure (site, date, '.$kie_heure2.'_h) values (\''.$kie_temp2.'\', \''.$kie_heure.'\', 1)') or die('Erreur insertion heure');
 }
 
 // Mots-clés + Insertion BDD n°5 (kietu_motcl)
 function kie_trouver_motcle($chaine,$cle)
 {
  parse_str($chaine);
  if (isset($$cle))
  {
   return $$cle;
  }
 }
 $kie_temp=parse_url($kie_refer);
 while(list($key,$value)=each($kie_moteur))
 {
  if(eregi($key,$kie_temp['host']))
  {
   if (is_array($value[1]))
   {
    while (list($key2,$value2)=each($value[1]))
    {
     $kie_motcl.=kie_trouver_motcle($kie_temp['query'],$value2);
    }
   }
   else
   {
    $kie_motcl.=kie_trouver_motcle($kie_temp['query'],$value[1]);
   }
   $kie_motcl=rawurldecode($kie_motcl);
   if ($kie_motcl<>'')
   {
     mysql_query('INSERT INTO kietu_motcl (id, keywords) values ('.$kie_id.',\''.mysql_real_escape_string($kie_motcl).'\')') or die ('Erreur insertion mots clés');
    break;
   }
  }
 }
 // Archivage automatique
 if($kietu['archivageauto']==1) {
  $mois=date("n");
  $annee=date("Y");
  if($mois=="1") {
   $mois="12";
   $annee--;
  } else {
   $mois--;
  }
  $sit=$kie_temp2;
  $result=mysql_query('DELECT ID FROM kietu_archive WHERE mois='.$mois.' AND annee='.$annee.' AND site=\''.$sit.'\'');
  if (mysql_num_rows($result)==0) {
   include("modules/fonction_archive.php");
   archivage($mois,$annee,$sit);
  }
 }
 mysql_close();
}
// Affichage logo/texte
if ($kietu['appel']=='img')
{
 header ('Location: media/kietu.gif');
}
elseif ($kietu_aff_logo==1)
{
 echo '|  | 
Enoncé Place un point N sur le cercle et trace les segments [AN] et [BN].
Trace l'angle ANB.
 Mesure l'angle ANB et compare avec la mesure de l'angle AMB.
 Déplace le point N tout autour du cercle. Peut-on toujours faire la même remarque ?
 Déplace les points A et B. Obtient-on le même résultat ?
 | 
  ';
}
elseif ($kietu_aff_text==1)
{
 echo ''.$kie_text.'';
}
else
{
 echo '';
}
?> |