Page 1 sur 1

stocker 1fois l'ip du visiteurs

Posté : jeu. 8 nov. 2018 16:53
par remysimpson
Bonjour je suis actuellement en plein refonte de mon site ( les membres inscrit vous pouvez deja le voir ) mais je fait encore mieux je vais autorisé le site uniquement aux ip des gens inscrit ( que j'ai pas dans la bdd ) du coup je stock le tout dans un txt malheuresement a chaque fois que la personne va cliquezr sur l'index de mon site l'ipp sera enregistrer du coup si la personne clique 15x ba j'ai 15x son ip ( deja le rendu du txt et pas joli joli si en plus je doit trier les ip parmis les doublons ça le fait moyen (aha) )
voici le code
<?php
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip_address = $_SERVER['REMOTE_ADDR'];
}
$inF = fopen("ip.txt", "a" ); // ouvre le fichier ip.ini en mode append
//fputs($inF, $ip_address."\n"); // récupère l'ip de l'utilisateur
fputs($inF, date('D d M Y H:i:s',time()).', '. $ip_address."\n\r");
fputs($inF,"\n");
fclose($inF);
?>
simple mais qui marche (aha)
vous avez une soluce pour afficher que 1x l'ip meme si la personne ce connecte 15x ?

Re: stocker 1fois l'ip du visiteurs

Posté : jeu. 8 nov. 2018 17:05
par tttzzz
Bonjour,

Je ne te conseille pas d'utiliser HTTP_X_FORWARDED_FOR dont les valeurs peuvent etre manipuler facilement. La valeur qui ne peux pas etre manipuler par le client est REMOTE_ADDR.

Je n'ai pas tester mais voici une solution possible :

Code : Tout sélectionner

if (file_exists("ip.txt") {
  $_content_file=get_file_contents("ip.txt");
}
$ip_address = $_SERVER['REMOTE_ADDR'];
if (preg_match("/$ip_address/", $_content_file)) {
  $_msg = sprintf("%s %s\n\r", date('D d M Y H:i:s',time()), $ip_address);
  file_put_contents("ip.txt", $_msg, FILE_APPEND | LOCK_EX);
}

Re: stocker 1fois l'ip du visiteurs

Posté : jeu. 8 nov. 2018 17:19
par remysimpson
je viens de tester

remote addr ne marche pas je sais pas pourquoi


et quand je remplace remote addr par HTTP_X_FORWARDED_FOR ça me sors uniquement l'heure :(

Re: stocker 1fois l'ip du visiteurs

Posté : jeu. 8 nov. 2018 17:22
par remysimpson
c'est bon ça marche
manquais un ) a la premiere ligne et !preg_match

Re: stocker 1fois l'ip du visiteurs

Posté : jeu. 8 nov. 2018 18:44
par racacax
Salut,
Il faut absolument utiliser REMOTE_ADDR (qui est obligatoirement intégré à PHP donc c'est sûr que ça fonctionne) car n'importe qui peut trafiquer la valeur avec une en-tête.