Version francaise Version anglaise
Vous êtes ici : Web-Modules > Forum > Support : Bug et Aide > Script informations visiteurs > Lecture du sujet



Script informations visiteurs

sgbd

Profil Messages
Profil Messages
savaneb
      Haut Bas
# 1 - le 10/05/07 à 13h32
Membre
1 messages
Inscrit le 10/05/07
Salut et merci pour les infos disponibles sur ce site, très apreciables !

Je voudrais collecter les informations propres à chaque utilisateurs dans une base de données, en gros, j'ai mis en place un script php pour l'envoi d'email sur mon site, mais je voudrais ajouter l'ip, le fai, le browser .... des individus qui m'envoient un mail

Comment collecter ce genre d'infos dans un base de données mysql :
<script type="text/javascript" src="http://infos-visiteurs.web-modules.net/nom_navigateur.php"></script>

Merci pour votre aide

cdlt
Jérémie78
      Haut Bas
# 2 - le 10/05/07 à 16h50

Administrateur
855 messages
Inscrit le 13/02/07
Puisque tu connais le PHP (tu en a l'air en tout cas  happy.png ), on va faire tout ça directement en PHP  smile.png
Désolé mais il n'y a pas de coloration syntaxique, fait copier-coller dans notpad++ (ou autre) pour mieux mettre en couleur/forme le texte, parce que c'est pas toujours clair sans la couleur  wink.png

L'IP

Rien de plus simple pour récupérer une IP, elle se trouve dans une variable pré-remplie par Apache :
Citation de "PHP"
$ipDuVisiteur = $_SERVER['REMOTE_ADDR'];

Signature du navigateur

La aussi, la variable est déjà remplie  happy.png
Citation de "PHP"
$signatureDuNavigateurDuVisiteur = $_SERVER['HTTP_USER_AGENT'];

Le nom du navigateur

Pour cela on va se servir de la variable précédente, et on va vérifier ce qu'elle contient en utilisant une fonction de recherche simple mais très rapide (strpos). On recherche des informations spécifiques tel qu'un nom dans cette chaine de caractères :
Citation de "PHP"
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE)
$navnom = 'Internet Explorer';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE)
$navnom = 'Mozilla Firefox';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE)
$navnom = 'Opera';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') !== FALSE)
$navnom = 'Netscape';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Konqueror') !== FALSE)
$navnom = 'Konqueror';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla SeaMonkey') !== FALSE)
$navnom = 'SeaMonkey';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE)
$navnom = 'Safari';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Lynx') !== FALSE)
$navnom = 'Lynx';

elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'bot') !== FALSE OR strpos($_SERVER['HTTP_USER_AGENT'], 'spider') !== FALSE)
$navnom = 'Moteur de recherche';

else
$navnom = '$_SERVER['HTTP_USER_AGENT'] inconnu';

Domaine

Dans ce cas, il suffit de résoudre l'adresse du client à partir de l'adresse IP, une fonction est inclus en standard (hourra  laugh.png )
Citation de "PHP"
$domaineDuVisiteur = gethostbyaddr($_SERVER['REMOTE_ADDR']);

FAI

Pour ça, on va utiliser la variable créée avant contenant le nom de domaine du client, et on récupère les caractères se trouvant après l'avant dernier point. Par exemple "abo-243-237-68.guy.modulonet.fr" devient "modulonet.fr" :
Citation de "PHP"
$domaineDuVisiteur = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$fai = explode('.', $domaineDuVisiteur);

$nomDuFAI = $fai[count($fai) - 2]; // ex: modulonet
$paysDuFAI = $fai[count($fai) - 1]; // ex: fr

echo $nomDuFAI. '.' .$paysDuFAI;
On notera que $nomDuFAI ne contient pas toujours nom connu du FAI, ainsi "modulonet" est utilisé pour "Numericable"  wink.png

[EDIT @ 10-05-2007 à 16h51]
Je te laisse bien entendu faire la requête qui va avec pour stocker toutes ces informations  wink.png
Jérémie78
      Haut Bas
# 3 - le 03/06/07 à 02h30

Administrateur
855 messages
Inscrit le 13/02/07
Dis pas merci surtout  happy.png
macfly
      Haut Bas
# 4 - le 03/06/07 à 19h58

Modérateur
183 messages
Inscrit le 13/02/07
C'est ce qu'il fait ! ! !  unsure.png

Image
Jérémie78
      Haut Bas
# 5 - le 03/06/07 à 20h47

Administrateur
855 messages
Inscrit le 13/02/07
Disons qu'on peut dire merci avant et ... après avoir l'info  tongue.png
Enfin bon ...

Contact - Statistiques
Web-modules.net : 2006-2011.