Lire/écrire d'un fichier à un textarea et vice versa

Bonjour à tous,

J’aimerais enregistrer le contenu d’un champ de type “textarea” dans un fichier (donnees.txt), mais je voudrais que le contenu du fichier donnees.txt s’affiche automatique dans mon textarea, pour pouvoir le modifier, sans avoir à tout retaper.

J’ai essayé le code suivant :

<?php file_put_contents( 'donnees.txt', $_POST['texte'] ); ?> <?php echo file_get_contents( 'donnees.txt' ); ?>

Mon problème est qu’automatiquement le contenu de mon textarea est vite, et donc le contenu du fichier est supprimé lès le chargement de la page.
Est-ce que vous pourriez m’aider à mettre au point ce petit code.

Merci d’avance

Assez logique hein.

Faut déjà vérifier le contenu de ta variable $_POST[‘texte’], sinon tu n’écris rien.

=>

if (isset($_POST[‘texte’])) file_put_contents( ‘donnees.txt’, $_POST[‘texte’]);

Préfère !empty(). :wink:

Faux. Si la variable n’existe pas tu auras la droit à un warning.
Edité le 30/06/2008 à 01:24

N’utilise pas empty(). Parce que si tu veux vider le fichier, tu ne pourras pas. De manière générale, empty = bof car traitement spécifique au type de la variable = du plaisir pour debugger après. (je ne déconseille pas l’utilisation d’empty, juste qu’il faut faire attention)

Merci de vous intéresser à mon problème.
Le fait que mon textarea soit vide et que cela efface le contenu de donnees.txt est maintenant résolu. MERCI BEAUCOUP !

Cependant, quand je clic que le bouton “ecrire” j’arrive à la racine du site, au lieu de rester sur la même page ; et le contenu de donnees.txt est inchangé, au lieu d’être remplacé par le nouveau contenu que j’ai tapé dans le textarea.
Comment est-ce que je peux corriger cela ?

up :wink:

Personne ne peut m’aider à bien écrire dans le fichier ?

Merci d’avance

Remplis correctement ça:

dans le genre, , ou tout simplement le nom de la page (machinchose.php)

Merci de ton aide.

J’ai donc essayé ce code :

<?php
 if (isset($_POST['texte'])) file_put_contents( 'donnees.txt', $_POST['texte']);
?>
<form action="index2.php5" method="post">
 <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
 <input type="submit" value="ecrire" />
</form>

et celui ci :

<?php
 if (isset($_POST['texte'])) file_put_contents( 'donnees.txt', $_POST['texte']);
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
 <input type="submit" value="ecrire" />
</form>

Malheureusement mon problème reste le même : le contenu du fichier donnees.txt est inchangé, et quand je clique sur le bouton “Ecrire” je suis automatiquement redirigé vers la page d’accueil.

Comment est-ce que je peux corriger cela ?

En utilisant le code suivant, je ne suis plus redirigé vers la racine, mais le contenu du fichier donnees.txt reste le même

<form action="#" method="post">
 <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
 <input type="submit" value="ecrire" />
</form>

L’erreur venait du fait que j’avais 2 form imbriqués ce qui bloquait l’écriture dans le fichier :wink:

Merci à tous de vous être intéressé à mon problème !