PHP : écrire en fin de fichier

Fermé
Signaler
Messages postés
269
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
1 avril 2011
-
Messages postés
269
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
1 avril 2011
-
Bonjour,

Je souhaite que l'IP d'un visiteur de mon site s'inscrive dans un fichier TXT afin que mon compteur de visiteurs, après lecture de ce fichier, ne compte pas plusieurs fois dans la même journée le même visiteur. Je voudrais que les IP s'ajoutent dans le fichier, chacun dans sa ligne propre. Voici le bout de code qui est sensé le faire :

-----------------
$fv = @fopen("visiteurs.txt","a+");
fputs($fv, $ip);
fclose($fcv);
--------------------

Bien qu'ayant choisi le mode a+, l'IP du visiteur ne s'ajoute pas en fin de fichier, mais écrase le précédent.J'ai essayé :

-----------------
$ip = $ip."\n";
$ip = $ip."\r";
$ip = $ip."\r\n";
$ip = $ip."\n\r";
-------------------------
... mais rien n'y fait ! Je n'ai toujours qu'un IP dans mon fichier, celui du dernier visiteur. Je remarque que lorsque je lis le fichier dans un éditeur, le curseur se place en début de fichier.

Je vous remercie de votre coup de main.


2 réponses

Messages postés
269
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
1 avril 2011
20
Merci pour ton coup de main. chr(13) ne marchait pas non plus. J'ai détruit mon fichier et l'ai récrit et maintenant ça marche. Je n'ai pas compris le pourquoi du comment.
1
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
202
c'est étrange, mais je ne pense pas que ca vienne de comment tu écris ton code.
Pour en avoir le coeur net, essayes :
<?php  
$ip = "127.0.0.1";  

$fv = fopen("visiteurs.txt","a");  
fputs($fv, $ip.chr(13));  
fclose($fv);   
?>  

Puis éxécutes le plusieurs fois, tu devrais avoir le resultat escompté.

A noter dans ton code, tu as fclose($fcv); et il faut fclose($fv);
0