IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

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


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut 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 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?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>

    Vous trouverez la page qui contient ce code à cette adresse
    Malheureusement j'ai un problème : le contenu du fichier donnees.txt est inchangé, et quand je clique sur le bouton "Ecrire" je suis automatiquement redirigé à la racine du site, au lieu de rester sur la même page.

    Comment est-ce que je peux corriger cela ?
    Merci d'avance de vos réponces

  2. #2
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    essaye avec dans le form

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    Merci beaucoup !
    Maintenant je ne suis plus redirigé vers la racine du site, cependant le contenu du fichier donnees.txt demeure inchangé.

  4. #4
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     if (isset($_POST['texte'])) var_dump(file_put_contents( 'donnees.txt', $_POST['texte']));
    ?>
    <form action="#" method="post">
     <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
     <input type="submit" value="ecrire" />
    </form>
    ca t affiche quoi comme valeur la ?

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    Ca ne m'affiche rien de particulier : si je modifie le contenu du textarea et que je clique sur le bouton "ecrire", la page s'affiche avec le même contenu qu'auparavant (à savoir "ceci est contenu du fichier") ce qui est exactement le contenu du fichier donnees.txt

    Je pense qu'il y a un problème dans le if
    si j'utilise le code suivant (sans le if), automatiquement le contenu de mon textarea est vide, et donc le contenu du fichier est effacé dès le chargement de la page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    file_put_contents( 'donnees.txt', $_POST['texte']);
    ?>
    <form action="#" method="post">
     <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
     <input type="submit" value="ecrire" />
    </form>
    <p>
    Je pense donc que c'est dans le if qu'il faut chercher une erreur, mais je ne vois pas où exactement ...

  6. #6
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    fait un
    juste avant de fait le file_put_contents, pour voir qu'elle sont les variables que tu récupère

  7. #7
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    J'ai donc ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    var_dump($_POST);
    file_put_contents( 'donnees.txt', $_POST['texte']);
    ?>
    <form action="#" method="post">
     <textarea name="texte"><?php echo file_get_contents( 'donnees.txt' ); ?></textarea><br/>
     <input type="submit" value="ecrire" />
    </form>
    Mais j'obtiens le message suivant à côté de mon textarea
    array(0) { }
    Voici la page

  8. #8
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    ton problème vient de plus haut dans ta page, tu ne peut pas imbriquer les balises form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <form name="formulaire" id="formulaire">
    <p>
    	<label for="votreSaisie">Votre saisie</label><br />
     
    </p>
    array(0) {
    }
    <form action="#" method="post">
     <textarea name="texte"></textarea><br/>
     
     <input type="submit" value="ecrire" />
    </form>
    <p>
    		Visualisez le fichier: <a href="donnees.txt" title="donnees.txt">donnees.txt</a>			
    </p>
    </form>

  9. #9
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    dans la page que tu as donnée, la methode POST n'est pas precise dans le formulaire

  10. #10
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    enleve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formulaire" id="formulaire">
    et le correspondant

    puisqu'apparament il n'a aucune utilitée

  11. #11
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 72
    Points
    72
    Par défaut
    Effectivement j'ai bien enlevé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formulaire" id="formulaire">
    et Ca fonctionne correctement ! Merci beaucoup à tout les deux !

    Cependant, juste au dessus de mon textarea, j'ai ceci qui s'affiche maintenant :
    int(37)
    (37 correspondant au nombre de caractéres que contient mon fichier donnees.txt)
    Comment ne plus l'afficher ?

  12. #12
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    enleve le var_dump() avant le file_puts_content
    et clique sur le bouton :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lire/écrire sur un fichier texte sur un serveur distant
    Par nabmoah dans le forum Visual C++
    Réponses: 6
    Dernier message: 12/02/2007, 11h27
  2. lire / écrire dans un fichier excel au format xml
    Par crisflo dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 28/01/2006, 11h50
  3. [FTP] Lire et écrire dans un fichier
    Par dj-julio dans le forum Langage
    Réponses: 49
    Dernier message: 12/01/2006, 12h59
  4. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 21h48
  5. Un langage pour lire, traiter et écrire de gros fichiers
    Par March' dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/04/2003, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo