Script qui fonction pas correctement

Résolu
Bonjour , je travaille en php et je fait de petits exercice , celui là demande de créer un formulaire , et d'inserer ses info dans un fichier , séparé par des | , et lorsque on insere des infos il doivent etre dans la ligne suivant etc..
voila ce que j'ai fait :
<html>
<head>
<title>shi</title>
</head><body>
<form method="POST" action="fichier.php">
<table>
<tr><td>Nom : </td>
<td><input type="text" size="40" name="nom"></td>
</tr>
<tr><td>Prenom :</td>
<td><input type="text" size="40" name="prenom"></td>
</tr>
<tr><td>@ : </td>
<td><input type="text" size="40" name="@"></td>
</tr>
<tr><td>Tel :</td>
<td><input type="text" size="40" name="Tel"></td>
</tr>
<tr><td>Dons</td>
<td><input type="text" size="40" name="Dons"></td>
</tr>
<tr><td><input type="submit" value="enregistrer"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>

se sont les info que vont etre inséré dans un fichier qui s'appelle :"ca.txt" , et voila le script fichier.php
<?php
$fd=fopen("ca.txt","a");
$info = "\r\n".$_POST['nom']."|".$_POST['prenom']."|".$_POST['@']."|".$_POST['Tel']."|".$_POST['Dons'];
fputs($fd,$info);
echo 'vos info ont bien été enregistré dans le fichier doc.txt';

?>

///le problém est que , à chaque insertion au lieu de sauter la ligne qu'une seul fois il le fait plusieur fois!! parfois 3 lignes , parfois 4 , pourquoi ca d'aprés vous?? c koi l'erreur que je fait dans le script// j'ai besoin de vouus et merci d'avance

4 réponses

  1. Pourtant, si tu vois ces lignes de |||, c'est bien que fichier.php est appelé avec un formulaire vide. Chez moi, ton formulaire + ton script se comportent tout à fait normalement.
    Le code de ton formulaire est bien complet aussi ?
    Tu fais tes essais en local ou en ligne ?
    Si tu es en ligne, vérifie le contenu de ton fichier doc.txt, attends 10 minutes sans toucher à rien et va vérifier à nouveau : s'il a changé, c'est que des robots ont visité ta page "fichier.php", provoquant une ligne de plus à chaque fois. Pour éviter ça, tu n'auras qu'à tester
    if (isset($_POST['nom']))
    pour savoir si c'est un vrai envoi de formulaire ou un robot. Si c'est un robot, n'enregistre rien.
    1. Aaah bon merci beaucoup deja pour votre aide , je vais esseyer ca maintenant
    2. Meerci en fin ça marche (y)
  2. Mais ca sert à quoi ??
    Je ne t'ai pas demandé de la faire, je t'ai dit que tu le faisais. C'est quand tu le fais que ça ajoute une ligne de ||||.
    Si ça ajoute quatre lignes à chaque fois au lieu d'une seule, effectivement, il y a un problème. Tu nous a bien donné TOUT le code de fichier.php ?
    1. aaah HH desolé , j'ai cru que vous m'avez demandé de le faire , pour info , je le fais , pas , et pour enlever le doute , je ferme la page a chaque fois que je veux faire l'insertion ,
      PS:si je vous ai donnée Tout le code de fichier.php
      :(
  3. Tout simplement tu valides un formulaire vide. Ou tu lances directement fichier.php : ça enregistre une ligne à chaque fois, sans rien dans le nom ni le prénom etc...
    1. Mais ca sert à quoi ?? quand j'ai fait ca maintenant il avait sauter 8 lignes remplies par les ||||
  4. Bonjour

    D'abord, tu es sûr qu'il s'agit bien de lignes vides, pas de lignes avec quelques ||| comme si tu avais validé le formulaire sans remplir les champs ?
    Si tu en es sûr, peux-tu mettre un exemple de fichier avec tes quelques lignes sautées sur un site comme cjoint.com et nous mettre le lien ici ?
    1. ouiiiiiiiiiiii des ||| exactement , par exemple si il saute 4 ligne il me donne ||||| sur 4 lignes , pourquoi d'aprés vous???
    2. @DevGlpar exemple voila le resultat que j'ai dans le fichier :

      demi|jack|demi.jack@gmail.com|0612541236|1245
      ||||
      ||||
      black|bleu|demi.jack@gmail.com|0612541236|1245
      ||||
      ||||