Se connecter / S'enregistrer
Votre question

Problème doublon adresse IP

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
5 Août 2009 13:31:26

Bonjour, sur mon site j'ai écrit un script php qui permet de compter le nombre de visiteurs, pour cela j'utilise l'adresse IP des visiteurs que je récupère par la variable $_SERVER['REMOTE_ADDR'] puis que je stocke dans une base de donnée. Quand je me connecte sur mon site, j'ai bien mon enregistrement qui est écrit dans la base avec mon adresse IP, mais quand ensuite je passe sur une autre page du site, j'ai un deuxième enregistrement qui est écrit dasn ma base avec une deuxième adresse IP !!!!!!!! est-ce que quelqu'un pourrait me donner des infos à ce sujet car évidemment d'une part ça fausse tout au niveau calcul du nombre de visiteurs mais en plus je ne comprends pas pourquoi la variable $_SERVER['REMOTE_ADDR'] me donnerait pour moi 2 adresses IP différentes ? ceci se produit sur l'hébergement réel de mon site pas sur mon disque local. Merci pour vos réponses.

Autres pages sur : probleme doublon adresse

5 Août 2009 22:12:12

bonjour!
pour ce qui est du problème de doublon, tu peux tester la page d'où vient le visiteur: si c'est le même domaine, on n'enregistre pas, sinon on enregistre; pour ceci, aide toi de $_SERVER["HTTP_REFERER"] !
pour les ip: en local, pas de pb, c'est 127.0.0.1 ! pour le web, tu passes par ton routeur, qui doit être à ip dynamique, comprendre que l'ip change régulièrement, mais bon c'est pas toutes les 10s non plus! la plupart changent d'ip lors d'un reboot, je ne sais pas si il y en a qui changent alors que la connexion est active.. bizarre de ce côté!
6 Août 2009 01:53:54

Tu peux laisser ta base ainsi et faire un SELECT COUNT(DISTINCT ip) et là tu auras le nombre de visiteur et en supprimant le DISTINCT tu as le nombre de page vu ...

Sinon si tu as un champs date tu peux également rajouter une clause d'unicité entre cette date et ton IP. En plus ta base de donnée sera plus légère.

Dernière solution, utiliser le ON DUPLICATE

tu fais une base avec genre :
id | ip | nb_vu

ET tu fais une requête d'insertion genre : INSERT INTO matable (ip) VALUES ('theip') ON DUPLICATE nb_vu=nbvu+1;

Il faut bien sur que nb_vu soit à 0 par défaut car rien +1 c'est pas super logique :) 
7 Août 2009 17:43:44

Bonjour et merci pour vos réponses, je ne me suis peut-être pas trop bien expliqué lors de mon premier message alors je vais essayer d'être plus clair car je viens de faire quelques investigations et voici ce qui se passe:
je rentre dans mon site, je récupère mon adresse ip qui est de la forme 77.192.xxx.xxx jusque là no problem si cette adresse existe dans la base et que la date est inférieure à 5 minutes, je fais une mise à jour de l'enregistrement en mettant la date de connexion, si elle n'existe pas je la crée. Toujours no problem je change de page je refais toute cette procédure, et ça marche très bien mais ce qui se passe de temps en temps quand je change de page c'est que j'ai une autre adresse qui est écrite dans ma base qui est de la forme 66.249.71.155 et qui est écrite juste après la mienne à 1 ou 2 secondes d'intervalle après la mienne et j'ai regardé cette adresse, c'est une adresse google !!!!! alors je ne sais pas si c'est dû au fait que j'ai mis un encart publicitaire sur mon site par l'intermédiaire de google adsense ou bien est-ce que c'est un robot google qui de temps à autre fait un passage dans le site ? !!!! donc dans mon script php de compteur de visites si je dis que je ne tiens pas compte de l'adresse 66.249.71.155 alors tout est bien le compteur est bon etc ... mais demain ce sera peut-être l'adresse google 66.249.71.004 ou autre alors je ne sais pas comment faire pour éviter ce truc là !!! si quelqu'un a une idée là dessus et peut me dire si c'est dû à google adsense déjà ou bien aux robots de google, je ne sais pas et je ne pige pas tout parce qu'à ce moment là il devrait bien y avoir des robots altavista yahoo ou autre non ? qu'en pensez-vous ? en tout cas merci pour vos réponses.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS