blackliste sur fichier text [help]

blackliste sur fichier text [help] - PHP - Programmation

Marsh Posté le 02-02-2009 à 18:13:46    

bonjour à tous,
alors voila j'ai un petit annuaire sur fichier texte
et des zozos me spamment réguliérement ....
je souhaite faire un fichier texte avec les noms de domaines blacklisté.
donc quand la personne essaye de poster un nouveau lien on lit le fichier texte blacklist.txt ligne par ligne dans un tableau
et ensuite on vérifie que l'élément url du post ne soit pas dans ce fichier blacklist pour continuer le reférencement.
sinon on affiche un texte de blocage.
 
voila le code :

Code :
  1. <form name="form" method="post" action="bl.php">
  2. <input type="text" name="url">
  3. <input type="submit" name="Submit" value="Envoyer">
  4. </form>
  5. <?
  6. $fichier='BLACKLIST.txt';
  7. $tableau = file($fichier);
  8. foreach ($tableau as $row) {
  9. if($_POST['url']==$row) { echo "site blacklisté, désolé, il fallait respecter les conditions"; exit; }
  10. }
  11. // suite programme .....
  12. ?>


ca marche uniquement sur la derniére ligne du fichier .... !!!!  :ouch:  
comprend po
si quelqu'un a une idée, de l'aide serait bienvenue
merci d'avance


Message édité par cedouf le 02-02-2009 à 18:21:32
Reply

Marsh Posté le 02-02-2009 à 18:13:46   

Reply

Marsh Posté le 02-02-2009 à 18:21:10    

1) est ce que tu es sur de ne pas avoir de blanc à la fin des lignes ou tout autre caractère.
2) est tu sur que php utilise la même terminaison de ligne que celle du fichier d'exclusion? (sous windows, c'est les caractères de numéro 10 et 13 alias \n\r qui forme la fin de ligne, sous linux, c'est le caractère de numéro 13 alias \r )
 
3) es-tu sur de vouloir exécuter le reste de la page pour chaque ligne de ton fichier tant que tu n'as pas trouvé la bonne ligne?

Reply

Marsh Posté le 02-02-2009 à 18:24:07    

1) aucun blanc
2) mes lignes sont de la forme : "domaine.com"
3) non dés que la ligne correspondante a été trouvé on peu arreter cette fonction

Reply

Marsh Posté le 02-02-2009 à 18:25:10    

pour les terminaison de ligne la fonction "file" n'en a pas besoin si ?

Reply

Marsh Posté le 02-02-2009 à 18:39:16    

Je viens de relire la description française de cette fonction et ça n'est pas très clair.
Avec la description anglaise, c'est beaucoup plus clair :
 
Le(s) caractère(s) de fin de ligne sont rajouté à la fin de chaque élément du tableau sauf si on met le "flag" (drapeau) FILE_IGNORE_NEW_LINES comme deuxième paramètre de la fonction "file".
 
Comme tu ne l'as pas indiqué, tu te retrouves avec un texte du genre "80.18.12.5\r" à la place du "80.18.12.5" que tu pensais obtenir.
 
PS : Du coup mon idée du 2) était fausse bien qu'il y ai bien un caractère invisible en trop à la fin de chaque élément sauf le dernier.

Reply

Marsh Posté le 02-02-2009 à 20:09:58    

on s'éloigne du sujet,
il n'y a aucun \r ou \n ou les deux que ce soit dans le fichier ou dans le tableau......

Reply

Marsh Posté le 02-02-2009 à 20:10:19    

ou trouve tu : 80.18.12.5 ?????

Reply

Marsh Posté le 03-02-2009 à 11:09:55    

Un exemple. Juste un exemple. :sarcastic:  
 
Quand aux \r et \n, je te renvoie à la base : le manuel.

Reply

Marsh Posté le 03-02-2009 à 14:46:25    

Déjà, tu peux peut-être vérifier le contenu de $_POST['url'] et de $row (par exemple avec var_dump($mavariable); )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed