Modification fichier txt : PHP
Donc voici mon fichier index.php
<html>
<body>
<?php
$monfichier = fopen('toto.txt', 'r+');
// lit le contenu du fichier
$image1 = fgets($monfichier);
$nom1 = fgets($monfichier);
$link1 = fgets($monfichier);
$image2 = fgets($monfichier);
$nom2 = fgets($monfichier);
$link2 = fgets($monfichier);
$image3 = fgets($monfichier);
$nom3 = fgets($monfichier);
$link3 = fgets($monfichier);
$image4 = fgets($monfichier);
$nom4 = fgets($monfichier);
$link4 = fgets($monfichier);
?>
<p>
<form method="post" action="modif.php">
<label for="text">J'enregistre mon texte :</label><br />
<textarea name="text" cols="50" rows="2"><?php echo $image1; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $nom1; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $link1; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $image2; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $nom2; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $link2; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $image3; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $nom3; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $link3; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $image4; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $nom4; ?></textarea>
<textarea name="text" cols="50" rows="2"><?php echo $link4; ?></textarea>
<p><input type="submit" value="Enregistrer"/></p>
</p>
</form>
</body>
</html>
Voici mon fichier modif.php
<?php
// le chemin de votre fichier
$monfichier = 'toto.txt';
// Modification du fichier
file_put_contents($monfichier, $_POST['text']);
//redirection vers la page le formulaire pour d'autres modifs
header('Location: index.php');
?>
Et donc mon problème c'est que rien ne s'enregistre dans mon fichier toto.txt qui est en CHMOD 777
Un petit cou de main les gars ? =)
Merci.
4 réponses
Un formulaire PHP posté vers modif.php n’écrit pas le contenu dans toto.txt lorsque le bouton Enregistrer est cliqué, malgré un CHMOD 777 sur le fichier. Plusieurs participants recommandent de nommer les champs texte de manière distincte ou d’utiliser un tableau texte[] pour récupérer les entrées dans $_POST, afin d’éviter que les valeurs ne s’écrasent lors de l’enregistrement. Réponse 3 propose de lire Toto.txt en array avec file($monFichier) et d’écrire via modif.php avec $_POST['texte'] (un tableau), et de boucler lors de l’affichage pour préserver le format. D’autres mentions : vérifier que $_POST n’est pas vide, régler l’exécution avec exit() après redirection, et utiliser une solution qui supporte l’ajout de lignes au fichier plutôt que d’écraser.
-
pourquoi as tu ait un double post ?
-
-
Et pourtant : https://forums.commentcamarche.net/forum/affich-26284549-aide-pour-modification-fichier-txt-php#p26284549
Mais bon, ce n'est pas bien grave :-) -
-
-
un up après 30 minutes, c'est abusé.
Surtout qu'une réponse a été donnée
-
-
Up up ?
-
<html> <body> <?php $monfichier = fopen('toto.txt', 'r+'); // lit le contenu du fichier $image1 = fgets($monfichier); $nom1 = fgets($monfichier); $link1 = fgets($monfichier); $image2 = fgets($monfichier); $nom2 = fgets($monfichier); $link2 = fgets($monfichier); $image3 = fgets($monfichier); $nom3 = fgets($monfichier); $link3 = fgets($monfichier); $image4 = fgets($monfichier); $nom4 = fgets($monfichier); $link4 = fgets($monfichier); ?> <p> <form method="post" action="modif.php"> <label for="text">J'enregistre mon texte :</label><br /> <textarea name="texte[]" cols="50" rows="2"><?php echo $image1; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $nom1; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $link1; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $image2; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $nom2; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $link2; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $image3; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $nom3; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $link3; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $image4; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $nom4; ?></textarea> <textarea name="texte[]" cols="50" rows="2"><?php echo $link4; ?></textarea> <!-- il faut que le name de chaque textarea soit différent car c'est grace à cela que l'on récupère les valeurs, mais si on met un name de la forme xxx[] on récupère dans un array ce qui est utile pour enregistrer par la suite par file_put_conten(file_name,array) et évites d'utiliser des noms réservés html text sert a définir le type d'un input par exemple --> <p><input type="submit" value="Enregistrer"/></p> </p> </form> </body> </html> Voici mon fichier modif.php <?php // le chemin de votre fichier $monfichier = 'toto.txt'; // Modification du fichier // $_POST['texte'] est un array file_put_contents($monfichier, $_POST['texte']); //redirection vers la page le formulaire pour d'autres modifs header('Location: index.php'); ?> -
autre methode avec des boucles ce qui te permet de rajouter des lignes dans ton fichier sans modifier le code
<?php $monFichier='toto.txt'; //on lit et met dans un array grace à la fct file $array_lu=file($monFichier); //formulaire echo '<p>'; echo '<form method="post" action="modif.php">'; echo 'J\'enregistre mon texte :<br />'; //boucle d'affichage des textarea for($i=0;$i<sizeof($array_lu);$i++){ echo '<textarea name="texte[]" cols="50" rows="2">'.$array_lu[$i].'</textarea>'; } ?> <p><input type="submit" value="Enregistrer"/></p>'; </p> </form> </body> </html> fichier modif.php <?php // le chemin de votre fichier $monFichier = 'toto.txt'; // Modification du fichier // $_POST['texte'] est un array file_put_contents($monFichier, $_POST['texte']); //redirection vers la page le formulaire pour d'autres modifs header('Location: index.php'); ?>-
Regarde alain ce que je voudrais faire enfaite tu comprendra mieux ce que je cherche a faire. ( enfaîte je veux faire un "administration" une page simple pour modifier rapidement mes donnés sur mon site)
https://www.imagup.com/data-recovery-solutions-for-small-businesses-of-san-francisco/
J'ai déja mis mon PHP en place sur mon site maintenant je voudrais pouvoir seulement rapidement pouvoir modifier mes données dans mon fichier txt =) -
-
-