in_array() récalcitrant [Résolu]

in_array() récalcitrant [Résolu] - PHP - Programmation

Marsh Posté le 15-12-2008 à 04:27:58    

Bonjour,
 
Mon mon code est sensé faire ceci :
Il cherche un pseudo dans un fichier et si il le trouve, il averti que celui-ci existe déjà, sinon il l'ajoute dans le dit fichier (je suis obligé d'utiliser un fichier text.. c'est pour un projet d'examen..).
Le problème est que la fonction in_array() semble ne PAS trouver la correspondance entre la chaîne à rechercher et les entrée du array $lignes et le script part sur ELSE{... .
 

Code :
  1. $lignes = file($fpart);
  2.    $recherche = "pseudo:".$pseudo;
  3.    if(in_array($recherche, $lignes)){
  4.        echo 'Il semblerait que ce pseudo soit pris';
  5.        echo '<a href="javascript:history.go(-1)">Cliquez ici pour revenir au formulaire</a>';
  6.    }
  7.    else{
  8.      echo 'enregistrement de vos informations';
  9.      $fpartlec = fopen($fpart,"a+" );
  10.      fwrite($fpartlec,"pseudo:".$pseudo."\n" );
  11.      fwrite($fpartlec,"password:".$password."\n ______ \n \n" );
  12.      fclose($fpartlec);
  13.    }


 
Pour vérifier, j'ai fait afficher les valeurs avec :  

Code :
  1. echo " valeur de recherche : ".$recherche." ";
  2. print_r($lignes);


La valeur de $recherche affichée correspond pourtant avec une des valeurs de $lignes ! Aucun problème d'espaces ou autre ! c'est à ne rien y comprendre !
 
Quelqu'un aurait-il une idée miraculeuse ?
 
Merci d'avance et bonne matinée !


Message édité par Psychojau le 15-12-2008 à 11:46:24
Reply

Marsh Posté le 15-12-2008 à 04:27:58   

Reply

Marsh Posté le 15-12-2008 à 08:42:34    

La fonction file() garde les retours chariots à la fin, donc faut l'appeller avec :

Code :
  1. $lignes = file($fpart, FILE_IGNORE_NEW_LINES);

Reply

Marsh Posté le 15-12-2008 à 11:47:25    

Merci !!! J'étais complètement passé à côté ! Merci infiniment !

Reply

Sujets relatifs:

Leave a Replay

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