Ecrire adresse ip visiteur avec la date et l'heure dans fichier

Résolu/Fermé
sunev Messages postés 39 Date d'inscription dimanche 29 mai 2016 Statut Membre Dernière intervention 16 mai 2017 - 15 oct. 2016 à 21:56
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 16 oct. 2016 à 14:00
j'ai mis sur mon site le code php ci dessous pour récupérer l'adresse ip des visiteurs et je n'arrive pas a mettre a la suite de cette adresse la date et l'heure dans le méme fichier.txt


<?php

$filename = 'test.txt';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$somecontent=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$somecontent=$_SERVER['REMOTE_ADDR'];
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent."\r\n") === FALSE)
{
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
fclose($handle);
}
else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>


Ce code simple que j'ai trouvé sur un forum fonctionne trés bien, il inscrit les un en dessous des autres les différentes ip dans le fichier.txt que j'ai mis dans le répertoire racine de mon serveur.
le code est copié dans index.php
j'ai essayer de différentes manières de mettre heure et date , elles s'affichent mais les ip ne fonctionnent plus
code date et heure

<?php
$jour=date('d');
$mois=date('m');
$annee=date('Y');
$heure=date('H');
$minute=date('i');
echo'Visiter le'.$jour.'/'.$mois.'/'.$annee.'a'.$heure.'h'.$minute.'mn';
?>

si quelqu'un peut me donner des idées pour le lui intégrer, je ne suis qu'un débutant en php, ça peut m'éviter des nuits blanches.
merci d'avance " un qui sait vaut mieux que dix qui cherchent"
A voir également:

5 réponses

jee pee Messages postés 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
Modifié par jee pee le 15/10/2016 à 22:10
Bonjour,

Je ne suis pas utilisateur de php, mais voilà ce que je ferais (à confirmer par un spécialiste ;-)

           // Ecrivons quelque chose dans notre fichier. 
$jour=date('d');
$mois=date('m');
$annee=date('Y');
$heure=date('H');
$minute=date('i');
$somecontent=$somecontent.' le '.$jour.'/'.$mois.'/' .$annee.' à ' .$heure.'h'.$minute.'mn';
if (fwrite($handle, $somecontent."\r\n") === FALSE)

cdlt

        un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
sunev Messages postés 39 Date d'inscription dimanche 29 mai 2016 Statut Membre Dernière intervention 16 mai 2017
Modifié par sunev le 15/10/2016 à 23:29
je viens d'essayer ce code en le rajoutant a celui de l'IP
seul l'IP reste visible, rien n'a changer

il faudrait voir apparaitre dans le fichier test.txt ici en local ( fonctionne aussi bien sur mon site avec des vraies IP)

127.0.0.1 Visiter le 15/10/2016 a 20h10mn
127.0.0.1 Visiter le 15/10/2016 a 21h32mn
127.0.0.1 Visiter le 15/10/2016 a 22h40mn

seul apparait dans le fichier test.txt
127.0.0.1
127.0.0.1
127.0.0.1

une question en plus: que veut dire la condition === FALSE
deux == équivaut a égale mais trois????
0
sunev Messages postés 39 Date d'inscription dimanche 29 mai 2016 Statut Membre Dernière intervention 16 mai 2017
Modifié par jordane45 le 16/10/2016 à 01:08
j'ai oublier le code tel que je l'ai mis
le voici

<?php
$filename = 'test.txt';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
$somecontent=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$somecontent=$_SERVER['REMOTE_ADDR'];
if (is_writable($filename))       
if (!$handle = fopen($filename, 'a')) 
{ 
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
if (fwrite($handle, $somecontent."\r\n") === FALSE)  
{ 
 echo "Impossible d'écrire dans le fichier ";
 exit;
} 
echo "L'éceriture  dans le fichier  a réussi";
   fclose($handle);
} 
else { 
echo "Le fichier $filename n'est pas accessible en écriture.";
}

$jour=date('d');
$mois=date('m');
$annee=date('Y');
$heure=date('H');
$minute=date('i');
$somecontent=$somecontent.' le'.$jour.'/'.$mois.'/'.$annee.'a'.$heure.'h'.$minute.'mn';
if (fwrite($handle, $somecontent."\r\n") === FALSE)  

?>

ce code peut être modifié en enlevant tous les echo de maniéré a ce qu'il n'y est rien qui apparaisse sur le page d’accueil

echo "Impossible d'ouvrir le fichier ($filename)";
echo "Impossible d'écrire dans le fichier ";
echo "L'éceriture dans le fichier a réussi";
echo "Le fichier $filename n'est pas accessible en écriture.";

si quelqu'un est interressé par ce code il est au courant
comme ça les visiteurs ne savent pas que leur IP est localisée
sinon l'avant dernier echo est visible sur la page
pour lire le fichier il suffit de créer le lien
http://www.monsitweb.net/test.txt


EDIT : Ajout du LANGAGE dans les balises de code
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 oct. 2016 à 01:15
Bonjour,

Tu peux utiliser ceci :
$filename = 'test.txt';

$somecontent = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?  $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

 if (is_writable($filename)) {
   if (!$handle = fopen($filename, 'a')) { 
     echo "<br>Impossible d'ouvrir le fichier ($filename)";
     exit;
   }
   $somecontent .= " le ". date('d/m/Y') . " à ".date('H:i:s');
   echo "<br>$somecontent";
   if (fwrite($handle, $somecontent."\r\n") === FALSE) { 
     echo "<br>Impossible d'écrire dans le fichier ";
     exit;
   } 
  echo "<br>L'éceriture  dans le fichier  a réussi";
  fclose($handle);
} else { 
  echo "<br>Le fichier $filename n'est pas accessible en écriture ou n'existe pas";
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sunev Messages postés 39 Date d'inscription dimanche 29 mai 2016 Statut Membre Dernière intervention 16 mai 2017
Modifié par sunev le 16/10/2016 à 13:33
127.0.0.1 le 16/10/2016 à 12:49:17 est apparu dans test.txt

c'est OK, grand merci jordane45 ton code fonctionne.
une dernière question, dans ce bout de code
if (fwrite($handle, $somecontent."\r\n") === FALSE)
comment interprété la condition ===
== c'est égale mais trois
si ecrire ce qui est ecrit dans test.tx l'ID ouvert en écriture
/n égale égale faux


si des membres de la communauté de commentcamarche veulent ce servir de ce code, il faut le mettre n'importe ou, moi je l'ai mis a la fin du <body>
en prennant soin de retirer tous les echo du code comme je l'avais dit plus haut
mettre le fichier test.txt sur le serveur
ensuite on recupere les IP en créant un lien sur son pc
http://www.monsitweb.net/test.txt
puis on va sur lun des sites suivants
https://fr.geoipview.com/ ou https://trouver-ip.com/index.php ou encore
http://www.netscop.net/localiser-une-adresse-ip.html
et on fait copier coller d'une Ip du fichier test txt dans " recherche"
et voila on localise la zone du visiteur, je dis bien la zone parce qu'il se trouvera dans large rayon autour, l'adresse précise ne sera pas donnée pour des raisons évidentes ( ni l'identitée de la personne).
sur mon site je sais maintenant que j'ai des visiteurs de floride et de californie, c'est super de le savoir

Merci encore à commentcamarche et a toi jordane45
pense aux 3 === si tu connait cette condition

si quelqu'un a des idées pour amelioer ce code je suis prennant
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
16 oct. 2016 à 14:00
manual/fr/language.operators.comparison.php
0