[RESOLU] récupérer adresse IP

msgbrr
Invité n'ayant pas de compte PHPfrance

20 févr. 2013, 22:11

Bonjour,
J'ai crée ce script php mais il ne marche pas, pouvez me dire ou est la faute :
<? $inF = fopen("./ip.ini", "a" ); 
 fputs($inF, $REMOTE_ADDR."\n");
$hostname = $_SERVER["REMOTE_ADDR"]; 
$date_str = 'D d M Y H:i:s T(0)'; fputs($inF, date($date_str), $hostname."\n");
 fputs($inF, $hostname."\n"); 
fclose($inF); ?>

PS : mon hebergeur supporte PHP 5.3
Et ce n'est pas le 1er script php que j'utlise donc ça ne vient pas de l'hebergeur !
Je l'ai placée entre les balises <body> a la fin.
J'ai créer la fichier ip.uni avec toute les permissions.

Eléphant du PHP | 453 Messages

21 févr. 2013, 00:55

<?php
	$ipUser = $_SERVER['REMOTE_ADDR'];
	$now = date('D d M Y H:i:s ');
	$row = $now." --> ".$ipUser."\n";
	
	$file = 'log.txt';
	$mode = 'a';
	
	$ressource = fopen($file,$mode);
	fputs($ressource,$row);
	fclose($ressource);
Fait de tête. Je peux m'être trompé
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

msgbrr
Invité n'ayant pas de compte PHPfrance

21 févr. 2013, 19:12

<?php
	$ipUser = $_SERVER['REMOTE_ADDR'];
	$now = date('D d M Y H:i:s ');
	$row = $now." --> ".$ipUser."\n";
	
	$file = 'log.txt';
	$mode = 'a';
	
	$ressource = fopen($file,$mode);
	fputs($ressource,$row);
	fclose($ressource);
Fait de tête. Je peux m'être trompé
Est-ce normal que tu ne ferme pas le script "?>"

Eléphant du PHP | 453 Messages

21 févr. 2013, 21:22

Est-ce normal que tu ne ferme pas le script "?>"
Oui - Pourquoi ?

Je pars du principe que je ne suis pas dans une vue. Donc en amont du code, je ne ferme pas la balise. Plus loin dans le code, je referme de toute manière pour envoyer les informations à la vue. Ce traitement d'informations peut être fait en amont dans ton code.

Dans ton code initial, j'ai vu deux erreurs. Logiquement, tu as dû avoir une erreur de type notice au moins.

* D'une manière générale, il est bon d'écrire ceci pour la déclaration de script php :
<?php /*ici le code*/ ?>
que cela :
<? /*ici le code*/ ?>
* A la ligne 2, il y a la variable $REMOTE_ADDR qui ne vaut rien.
* Tu remarqueras aussi que j'ai changé la description de la date. Je ne crois pas que cette écriture soit correct : 'D d M Y H:i:s T(0)'.
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

msgbrr
Invité n'ayant pas de compte PHPfrance

22 févr. 2013, 21:58

Merci beaucoup mais j'aurais une dernière question !

Les ip sont bien stockés dans log.txt ?
si oui ton code ne mache pas !

merci

Eléphant du PHP | 453 Messages

23 févr. 2013, 01:08

Merci beaucoup mais j'aurais une dernière question !

Les ip sont bien stockés dans log.txt ?
si oui ton code ne mache pas !

merci
Il marche très bien ce code. J'ai repris ta syntaxe à peu de choses près ;) On est dans le forum avancé. Donc tu es capable de voir où ça cloche. ;)
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

msgbrr
Invité n'ayant pas de compte PHPfrance

23 févr. 2013, 15:44

J'ai relu le code une dizaine de fois mais je ne vois absolument pas ou ça cloche, pour moi il est complet.
De plus si je suis ici c'est aussi car j'ai besoin d'aide !!

Eléphant du PHP | 453 Messages

23 févr. 2013, 16:13

Le mode d'ouverture du fichier doit être en 'a+'. Le fichier sur le serveur ne doit pas être créé. Donc tu as dû avoir une erreur de type :
permission denied ....
En reprenant le code, ça devrait faire un truc comme :
<?php
        $ipUser = $_SERVER['REMOTE_ADDR'];
        $now = date('D d M Y H:i:s ');
        $row = $now." --> ".$ipUser."\n";
       
        $file = 'log.txt';
        $mode = file_exists($file)? 'a' : 'a+';
       
        $ressource = fopen($file,$mode);
        fputs($ressource,$row);
        fclose($ressource);
?>
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

msgbrr
Invité n'ayant pas de compte PHPfrance

26 févr. 2013, 22:42

Ok c'est sympa merci, donc je n'ai pas a créer le fichier, il sera créer automatiquement ?

c'est ca ?

Eléphant du PHP | 453 Messages

27 févr. 2013, 23:44

Ok c'est sympa merci, donc je n'ai pas a créer le fichier, il sera créer automatiquement ?

c'est ca ?
oui. Du moins php tentera de le créer (droit du user -> chmod)
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia