Non reecriture fichier texxte

Utilisateur anonyme - 30 sept. 2010 à 01:29
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 30 sept. 2010 à 19:31
bonsoir
J'ai une petit probleme :
J'ai un code qui enregiste l'ip du visiteur dans un fichier texte :

$lol="ip.txt";
$ip = $_SERVER["REMOTE_ADDR"];

// On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée
if(!is_file($commentaires))
{
        $verif=@fopen($lol,"w+");
}
      
        // Si ok on ouvre en écirture-enregistrement du fichier message.txt
        $verif=@fopen($lol,"r+");
               
        // On analyse les anciennes données et on les stocks
        $stock=@fread($verif,filesize($lol));
       
        // On paramère le tout dans la variable $opinion
        $opinion=$ip;
       
        // On remet le curseur du fichier en début de ligne
        rewind($verif);
       
        // On insère le nouveau commentaire
        fputs($verif,$opinion." \n".$stock);
      
        // On clore le fichier
        fclose($verif);

Cela marche tres bien.
Comment lorsque qu'une ip est deja dans le fichier texte ne pas la reecrire(pour ne pas que le fichier ne soit trop lourd).

Merci

6 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
30 sept. 2010 à 01:54
Salut,

Ceci est plus simple et devrais répondre à tes attentes :
<?php

if (!in_array($_SERVER['REMOTE_ADDR'], explode(" \n", @file_get_contents('ip.txt'))))
  file_put_contents('ip.txt', $_SERVER['REMOTE_ADDR'] . " \n", FILE_APPEND);

?>
0
Utilisateur anonyme
30 sept. 2010 à 09:51
Personne n'a un autre code a me proposer?
Je veut juste que si l'ip est deja mis alors on la remarque pas dans le fichier texte (ip.txt)

Merci
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
30 sept. 2010 à 11:17
Je veut juste que si l'ip est deja mis alors on la remarque pas dans le fichier texte (ip.txt)

C'est exactement ce que fais la première ligne de ce que je t'ai proposé. La seconde fais la même chose que l'immonde pavé que tu as posté au début.

Personne n'a un autre code a me proposer?

Mais bien sur, tout le monde n'a que ça à faire d'écrire la même chose sous plusieurs formes différentes. Essaye plutôt de mettre en marche ton cerveau pour comprendre comment ça fonctionne, ça te sera bien plus bénéfique. Enfin quand je vois que même lorsque quelqu'un t'explique la marche à suivre (cf doublon de ce post) tu n'es pas capable de la suivre, je penses que tu n'as rien à faire ici et que tu devrais songer à regarder un cours de PHP avant de continuer quoi que ce soit.
0
Utilisateur anonyme
30 sept. 2010 à 13:03
mais je n'ais pas tres bien compris ce bout de code pouvvez me l'expliquer ?
<?php

if (!in_array($_SERVER['REMOTE_ADDR'], explode(" \n", @file_get_contents('ip.txt'))))
  file_put_contents('ip.txt', $_SERVER['REMOTE_ADDR'] . " \n", FILE_APPEND);

?>

Merci
0

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

Posez votre question
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
30 sept. 2010 à 16:42
Bon je te le fait rapidement :

explode(" \n", @file_get_contents('ip.txt') <-- renvoi un tableau avec un index par ligne de ton fichier txt

in_array($_SERVER['REMOTE_ADDR'], explode(" \n", @file_get_contents('ip.txt')

te renvoi 'vrai' si l'adresse ip $_SERVER['REMOTE_ADDR'] qui est l'adresse de l'utilisateur est dans le tableau

if (!in_array($_SERVER['REMOTE_ADDR'], explode(" \n", @file_get_contents('ip.txt'))))

si la condition n'est pas vrai, donc que ton adresse n'est pas dans le fichier alors

file_put_contents('ip.txt', $_SERVER['REMOTE_ADDR'] . " \n", FILE_APPEND);

tu met dans ton fichier 'ip.txt' l'adresse Ip $_SERVER['REMOTE_ADDR'] de ton utilisateur.

c'est pas si compliquer que cela :D

Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 sept. 2010 à 19:31
Personne n'a un autre code a me proposer?

Désolé de te dire ça mais tu es vraiment une personne que personnellement je n'ai plus aucune envie d'aider.

Tes récents messages démontrent une fainéantise profonde, un non respect du règlement et un certain mépris pour les personnes qui prennent de leur temps pour te répondre.

Bah oui, ton "personne n'a un autre code a me proposer", alors qu'un membre t'as très gentiment servi la solution sur un plateau est très méprisant, et ce n'est pas la première fois.
Alors si tu viens ici pour que l'on fasse le boulot à ta place, il est inutile de rester.

A bon entendeur ...

Kohntark -
0
Rejoignez-nous