CaptainIgloo Posté(e) le 29 avril 2010 Posté(e) le 29 avril 2010 Voici une manière simple de logger vos visiteurs dans une table MySQL afin de les géolocaliser (hors accès mobile) sur le base du webservice : http://www.maxmind.c...javascript_city. D'abord créer une table MySQL, Avec PhpMyAdmin importer la structure suivante : (Il faut les privilèges en accès localserver) Toutes informations stipulées dans la table seront loggées. -- -- Structure de la table `geoloc` -- CREATE TABLE IF NOT EXISTS `geoloc` ( `DateHeure` timestamp NOT NULL default CURRENT_TIMESTAMP, `os` varchar(100) collate latin1_general_ci NOT NULL, `ip` varchar(100) collate latin1_general_ci NOT NULL, `host` varchar(120) collate latin1_general_ci NOT NULL, `pays` varchar(100) collate latin1_general_ci NOT NULL, `region` varchar(100) collate latin1_general_ci NOT NULL, `ville` varchar(100) collate latin1_general_ci NOT NULL, `latitude` float(10,6) NOT NULL, `longitude` float(10,6) NOT NULL, `index` int(10) NOT NULL auto_increment, PRIMARY KEY (`index`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=0 ; A la racine de votre site web, créer la page "geolocalisation.php" (page d'injection) avec le contenu suivant : <?php function OS($Agent=false) { if(!$Agent) $Agent = $_SERVER['HTTP_USER_AGENT']; $os = null; $OS_arr = Array('Windows NT 6.0' => 'Windows Vista', 'Windows NT 6.1=> 'Windows 7', 'Windows NT 5.2' => 'Windows Server 2003', 'Windows NT 5.1' => 'Windows XP', 'Windows NT 5.0' => 'Windows 2000', 'Win 9x 4.90' => 'Windows Me.', 'Windows 98' => 'Windows 98', 'Win98' => 'Windows 98', 'Win95' => 'Windows 95', 'Mac' => 'Macintosh', 'PPC' => 'Macintosh', 'Linux' => 'Linux', 'FreeBSD' => 'FreeBSD', 'Unix' => 'Unix', 'SunOS' => 'SunOS', 'IRIX' => 'IRIS', 'BeOS' => 'BeOS', 'OS/2' => 'OS/2', 'AIX' => 'AIX'); foreach($OS_arr as $key_OS => $value_OS) { if(eregi($key_OS, $Agent)) { $os = $value_OS; } } if(empty($os)) return 'Inconnu'; else return $os; } $sys = OS($_SERVER['HTTP_USER_AGENT']); $host = gethostbyaddr($_SERVER['REMOTE_ADDR']); $con = mysql_connect('localhost','moncomptesql','motdepasse'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("nomdelabase", $con); $sql="INSERT INTO geoloc (os, ip, host, pays, region, ville, latitude, longitude) VALUES ('$sys','$_SERVER[REMOTE_ADDR]','$host', '$_GET[pays]', '$_GET[region]', '$_GET[ville]', '$_GET[latitude]', '$_GET[longitude]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } mysql_close($con) ?> Pour afficher la géocalisation du visiteur mettre dans votre page "index" le code suivant (par exemple en pied de page): <fieldset style="text-align:center;"><legend align="center">[ Visites et Geolocalisation de l'adresse IP ]</legend><p> L'adresse IP <font color="#000000"><b><script id='adr-ip' type="text/javascript" src="[url="http://www.actulab.com/affiche-ip.php"]http://www.actulab.com/affiche-ip.php[/url]" language="JavaScript"></script></b></font> <script language="JavaScript" src="[url="http://j.maxmind.com/app/geoip.js"]http://j.maxmind.com/app/geoip.js"></script[/url]> provient de <font color="#000000"><b><script language="JavaScript">document.write(geoip_country_name());</script></b></font> à proximité de <font color="#000000"><b><script language="JavaScript">document.write(geoip_city());</script></b></font> - Latitude: <font color="#000000"><b><script language="JavaScript">document.write(geoip_latitude());</script></b></font> / Longitude: <font color="#000000"><b><script language="JavaScript">document.write(geoip_longitude());</script></b></font> <script language="JavaScript">var coord =(geoip_latitude()+","+geoip_longitude());</script> -<script language="JavaScript">document.write('<a href="[url="http://maps.google.fr/maps?f=q&hl=fr&geocode=&q="]http://maps.google.fr/maps?f=q&hl=fr&geocode=&q='+coord+'&ie=UTF8&ll='+coord+'&z=13&iwloc=addr&source=embed[/url]" style="color:#0000FF;text-align:left" target="_blank">sur GoggleMaps</a>');</script> </p> </fieldset> A la suite dans votre page "index" ajouter le code suivant afin de logger dans la table les données affichées : <script language="JavaScript">document.write('<script type="text/javascript" language="javascript" src="[url="http://host.domaine.fr/geolocalisation.php?region="]http://host.domaine.fr/geolocalisation.php?region='[/url]+ geoip_region()+ '&ville=' + geoip_city()+ '&pays=' + geoip_country_name()+ '&latitude=' + geoip_latitude()+ '&longitude=' + geoip_longitude()+ '">');</script></script> Voilà pas très compliqué ... 0 Citer
CaptainIgloo Posté(e) le 29 avril 2010 Auteur Posté(e) le 29 avril 2010 Un peu plus http://php.net/manual/fr/book.geoip.php 0 Citer
CaptainIgloo Posté(e) le 29 avril 2010 Auteur Posté(e) le 29 avril 2010 Il faudrait que je trouve le temps de tester le module apache ... http://www.maxmind.com/app/mod_geoip 0 Citer
PatrickH Posté(e) le 29 avril 2010 Posté(e) le 29 avril 2010 Ca marche je l'avais fait avec "awstats"... Patrick 0 Citer
CaptainIgloo Posté(e) le 29 avril 2010 Auteur Posté(e) le 29 avril 2010 Ca marche je l'avais fait avec "awstats"... Patrick Qu'est-ce qui fonctionne ? Le tuto ? L'impl 0 Citer
PatrickH Posté(e) le 30 avril 2010 Posté(e) le 30 avril 2010 Qu'est-ce qui fonctionne ? Le tuto ? L'impl 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.