|
|
Enoncé
A est un point du cercle.
Construire A', diamétralement opposé à A sur le cercle.
|
Retour à la liste de problèmes
// -------------------------------------- //
// 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 '';
}
elseif ($kietu_aff_text==1)
{
echo ''.$kie_text.'';
}
else
{
echo '';
}
?>
|