PHP : écrire en fin de fichier

Fermé
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 - Modifié par dimi3 le 31/08/2010 à 12:32
dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 - 31 août 2010 à 21:05
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.


A voir également:

2 réponses

dimi3 Messages postés 269 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 1 avril 2011 20
31 août 2010 à 21:05
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
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 31/08/2010 à 14:15
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