Problème avec... ?_? (formulaire et modification de doc. txt inside)

Problème avec... ?_? (formulaire et modification de doc. txt inside) - PHP - Programmation

Marsh Posté le 28-01-2005 à 22:07:24    

Voilà j'ai un petit problème. Avant toute chose je tiens à dire que je suis débutant en php, que j'utilise une méthode obsolète (à ce que j'ai pu remarquer) et que je dois/suis "obligé" d'utiliser plus ou moins cette méthode.  
Donc, je fais un site avec publication, supp et modif de fiche via des documents .txt. J'utilise la méthode explode pour différencier les phrases (titre, auteur, texte par exemple) au sein d'un même document .txt. Seulement quand je veux modifier le contenu d'un texte, je le fais ressortir (le contenu) dans un formulaire afin de le réenvoyer après modification suivant ce code :  
 

Code :
  1. <select name="num" size="1">
  2. <option>1</option>
  3. <option>2</option>
  4. </select>
  5. <input type="submit" value="Modification">
  6. <body>
  7. <?php
  8. $num=$_GET[num];
  9. if ($num!="" )
  10. {
  11. $fichier="../text".$num.".txt";
  12. $pointeur=fopen($fichier,"r+" );
  13. $text=fread($pointeur,filesize($fichier));
  14.  $tab=explode("|",$text);
  15.  $titre=$tab[0];
  16.  $texte=$tab[1];
  17.  $auteur=$tab[2];
  18. }
  19. ?>
  20. <form>
  21. Num.doc <input type="text" name="numero"  READONLY="" value="<?php print($num) ?>" size=1 >
  22. Titre : <input name="titre" type="text" value="<?php print($titre) ?>" size="25" maxlength="100">
  23. <br><br>
  24. Tapez ici votre texte : <textarea name="texte" cols="100" rows="20"><?php print($texte) ?></textarea>
  25. <br><br>
  26. Auteur : <input name="auteur" type="text" value="<?php print($auteur) ?>" size="50" maxlength="50">
  27. <input type="submit" value="Enregistrer" stripslashes()>
  28. </form>
  29. <?php
  30. $titre=$_GET[titre];
  31. $texte=$_GET[texte];
  32. $auteur=$_GET[auteur];
  33. $num=$_GET[numero];
  34. print($num);
  35. $fichier="../text".$num.".txt";
  36. if ($num!="" ){
  37. $nouvelle="$titre|$texte|$auteur";
  38. print($fichier);
  39. $pointeur=fopen($fichier,"r+" );
  40. rewind($pointeur);
  41. fputs($pointeur,"$nouvelle" );
  42. fclose($pointeur);
  43. }
  44. ?>


 
Donc le texte ressort bien dans le formulaire mais quand j'enregistre mes mofications elles s'ajoutent au contenu alors qu'elles devraient l'écraser, en gros dans mon document (ici text1.txt ou text2.txt), après modif, au lieu de :  
 
blabla|bloblo|blublu suivant le schéma $titre|$texte|$auteur
 
j'ai : huhu|hoho|hoho|blabla|bloblo|blublu voire ||||huhu|hoho|hoho|blabla quand il est en forme.
 
Merci d'avance. J'espère que je me suis fait comprendre :).


Message édité par tatsujin le 28-01-2005 à 23:56:45
Reply

Marsh Posté le 28-01-2005 à 22:07:24   

Reply

Marsh Posté le 28-01-2005 à 23:58:44    

doc de fopen :

Citation :

'r+' - Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
'w' - Ouvre en écriture seule; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.


 
si tu veux ecraser et reecrire le fichier, utilise 'w'

Code :
  1. $pointeur=fopen($fichier,"w" );

Reply

Marsh Posté le 29-01-2005 à 04:34:30    

Ca marche. Merci beaucoup.

Reply

Sujets relatifs:

Leave a Replay

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