Problème avec fichier.txt

Problème avec fichier.txt - PHP - Programmation

Marsh Posté le 09-02-2007 à 15:21:13    

Bonjour;
j'ai une liste dans un fichier.txt qui se présente sous cette forme:
ff:ff:ff:abcde:1170889672
rtyu:ddfsdf:fdgf:gigi:1170889692
ryu:fdd:dfd:cirtey:1170889710
 
Je souhaite afficher une ligne entière grâce au $_POST de son premier élement.
Le code que j'ai fait marche mais il a un défaut.
Je ne peux pas afficher un message d'erreur dans le cas ou le premier élement ne se trouve pas dans la liste.
En fait je souhaite afficher le message suivant: "nom inexistant dans la liste" si le premier élément est inexistant dans la liste.
(j'ai réussi à afficher ce message mais il se répète à cause de la boucle).
Merci.

Code :
  1. <?php
  2. if(isset($_POST['envoi']))
  3. {
  4. if (isset($_POST['nom']) && ($_POST['nom'] != "" ))
  5.     {
  6.     if (file_exists("clients.txt" ))
  7.         {
  8.             if($id_file=fopen("clients.txt","r" ))
  9.             {
  10.             flock($id_file,1);
  11.   $i = 0 ;
  12.         $tab = file("clients.txt" );
  13.    for ($i = 0 ; $i < count ($tab); $i++) // parcourir le fichier
  14.                 {
  15.              $datum = explode (":", $tab[$i]);
  16.     if ($_POST["nom"] == $datum[0])
  17.        {
  18.                 echo "<b>Client N°".$i."<br></b>";
  19.                 echo "Nom: ",$datum[0],"<br>";
  20.                 echo "Prénom: ",$datum[1],"<br>";
  21.                 echo "E-mail: ",$datum[2],"<br>";
  22.                 echo "Mot de passe: ",$datum[3],"<br>";
  23.                 echo "Date d'inscription: ".date("d/m/y", $datum[4])."<br>";
  24.                 echo "<br>" ;
  25.     }
  26.        }
  27.        flock($id_file,3);
  28.     fclose($id_file);
  29.     }
  30.            else {echo "Le fichier où se trouve le nom est actuellement utilisé pour le moment, réessayez plus tard.";} 
  31.         }
  32.     else {echo "Le fichier où se trouve le nom n'existe pas ou plus.";}
  33. }
  34. else {echo "Saissisez le nom s'il vous plaît.";}
  35. }      
  36. ?>

Reply

Marsh Posté le 09-02-2007 à 15:21:13   

Reply

Marsh Posté le 09-02-2007 à 15:37:55    

pour simplifier ton code, utilise donc fgetcsv au moment de lire le fichier.
Sinon, ca serait bien d'avoir le code correspondant à ton probléme et non pas un code qui n'a rien à voir (ou une ancienne version qui ne correspond pas). Erreur de copier/coller?

Reply

Marsh Posté le 09-02-2007 à 15:43:43    

teycir a écrit :

(j'ai réussi à afficher ce message mais il se répète à cause de la boucle).

donc un while serait plus approprié, avec utilisation d'un booléen pour savoir si le client a été trouvé

Reply

Marsh Posté le 09-02-2007 à 17:18:13    

soju a écrit :

donc un while serait plus approprié, avec utilisation d'un booléen pour savoir si le client a été trouvé


Finalement, j'ai trouvé la solution en rajoutant un booléen.  

Reply

Sujets relatifs:

Leave a Replay

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