-
Index du forum
-
- Nous sommes le jeu. 30 mai 2024 12:15
- Heures au format UTC
Dans cette section, vous allez apprendre à créer un site web sans passer par les plates-formes automatiques tel que Xooit ert Forumactif.
-
remysimpson
- Modérateur
- Messages : 2070
- Enregistré le : ven. 26 août 2016 15:42
Message
par remysimpson » jeu. 8 nov. 2018 16:53
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
)
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
vous avez une soluce pour afficher que 1x l'ip meme si la personne ce connecte 15x ?
Tu as ete la pour moi depuis tout petit j'ai ete la jusqu'a ton dernier souffle
je t'aime mamie
-
tttzzz
- Fan de series des années 90
- Messages : 15
- Enregistré le : mer. 12 juil. 2017 12:10
Message
par tttzzz » jeu. 8 nov. 2018 17:05
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);
}
-
remysimpson
- Modérateur
- Messages : 2070
- Enregistré le : ven. 26 août 2016 15:42
Message
par remysimpson » jeu. 8 nov. 2018 17:19
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
Tu as ete la pour moi depuis tout petit j'ai ete la jusqu'a ton dernier souffle
je t'aime mamie
-
remysimpson
- Modérateur
- Messages : 2070
- Enregistré le : ven. 26 août 2016 15:42
Message
par remysimpson » jeu. 8 nov. 2018 17:22
c'est bon ça marche
manquais un ) a la premiere ligne et !preg_match
Tu as ete la pour moi depuis tout petit j'ai ete la jusqu'a ton dernier souffle
je t'aime mamie
-
racacax
- Administrateur du site
- Messages : 5079
- Enregistré le : mar. 25 mars 2014 18:17
Message
par racacax » jeu. 8 nov. 2018 18:44
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.