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 :

wampserver Ecrire dans un fichier.txt en PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut wampserver Ecrire dans un fichier.txt en PHP
    Bonjour,

    J'ai ce script, sur vampserver il ne fonctonne pas, il n'ecrit pas dans le fichier texte, alors que chez mon herbergeur il fonctionne, pourquoi ?
    Y a il un extention ou configuration PHP a install ou un module apache a installer.
    Car wampserver 2.0 fonctionne uniquement avec PHP5 oubien reconnais t'il automatique la version de php utilisé dans le script ? j'ai essai avec l'extention PHP3 mais c'est pareil, il n'ecrit pas dans le fichier texte.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
     
    <?php
     
     
    $fp = $_POST['commentaire'];
    if ($commentaire!="")
    	{
     
    $fp = fopen("course1.txt","a"); // ouverture du fichier en écriture
    fputs($fp, "\r\n"); // on va a la ligne
    fputs($fp, "$commentaire"); // on écrit le commentaire dans le fichier
    fclose($fp); 
    //fwrite($fp, $commentaire   . "\r\n");
        }
    ?>
    <form action="<?$PHP_SELF;?>" method="post">
    <textarea name="commentaire"></textarea>
    <input type="submit" value="Ecrire">
    </form>
     
    <p><a href="lecture1-liste-course1.php">Voir la liste </a> - <a href="lecture2-liste-course1.php">Voir la liste avec les cases à cocher</a> - <a href="supprimer-liste-course1.php">Effacer la liste </a></p>
    </body>
    </html>
    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    J'ai bidouillé le code mais je ne sais pas si c'est exactement ce que tu veux :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
     
    <?php
     
    // je ne voyais pas pourquoi tu prenais $fp ???
    // au passage, trim empêche la possibilité d'écrire des espaces...
    $commentaire = isset($_POST['commentaire']) ? trim($_POST['commentaire']) : "";
     
    if ($commentaire != "") {
        $fp = fopen("course1.txt", "a"); // ouverture du fichier en écriture
        fputs($fp, "\r\n"); // on va a la ligne
        fputs($fp, "$commentaire"); // on écrit le commentaire dans le fichier
        fclose($fp); 
        //fwrite($fp, $commentaire   . "\r\n");
    }
     
    ?>
    // ici j'ai carrément supprimé l'attribut action ce qui est équivalent à ce que tu voulais
    // PS : je ne suis pas sûr que ce soit très 'propre'. D'autres avis là-dessus ?
    <form method="post">
    <textarea name="commentaire"></textarea>
    <input type="submit" value="Ecrire">
    </form>
     
    <p><a href="lecture1-liste-course1.php">Voir la liste </a> - <a href="lecture2-liste-course1.php">Voir la liste avec les cases à cocher</a> - <a href="supprimer-liste-course1.php">Effacer la liste </a></p>
    </body>
    </html>
    Je ne suis pas sûr que ce la suppression de l'attribut action soit très 'propre'. D'autres avis là-dessus ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    C'est ok ca marche, pour l'écruture mais maintenant c'est la lecture.
    Si j'ai bien compris vous avez tout modifier en PHP 5.

    Lecture
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
     
    <script type="text/javascript">
    <!-- Debut 
     
    function imprime() {
    if (typeof(window.print) != 'undefined')
     { window.print(); }
    } 
     
    // -->
    </script> 
    </head>
     
    <body>
     
    <p>
      <?php
    $ouvre=fopen("course1.txt","r");  // ouverture du fichier
    while (!feof ($ouvre))          // tant que pas en fin de fichier
    	{
     
    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
    $donnee=explode("*",$lecture);  // parsing des données basé sur "*")
     
    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
    //echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
     
    for ($i=0;$i<=$combien;$i++)
    	{
    echo $donnee[$i],"<br>";  // affichage des données
    	}
     
    	}
    fclose($ouvre);		// fermeture
    ?>
    </p>
    <p><a href="ecrire-liste-course1.php">Ajouter un article &agrave;  la liste </a> - <a href="supprimer-liste-course1.php">Effacer la liste </a> - <a href="lecture2-liste-course1.php">Voir la liste avec les cases à cocher</a> - <a href="#" onclick="imprime(); return false">Imprime la page</a>
     
     
    </p>
    </body>
    </html>
    Car depuis que j'ai effacé mon fichier puis le lie il m'affiche
    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
    17
    18
    19
    20
    21
    22
    23
    Warning: fopen(course1.txt) [function.fopen]: failed to open stream: No such file or directory in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 24
     
    Warning: feof(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 25
     
    Warning: fgets(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 28
     
     
    Warning: feof(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 25
     
    Warning: fgets(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 28
     
     
    Warning: feof(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 25
     
    Warning: fgets(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 28
     
     
    Warning: feof(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 25
     
    Warning: fgets(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 28
     
     
    Warning: feof(): supplied argument is not a valid stream resource in L:\Program files 2\wamp\www\maison\N4\liste-courses\lecture1-liste-course1.php on line 25

    Efface
    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
    17
    18
    19
    20
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
     
    <?php 
    echo "La liste course 1 est effacé";
         if(file_exists('course1.txt')) 
         { 
              unlink('course1.txt'); 
         } 
    ?> 
     
    <p><a href="ecrire-liste-course1.php">Ajouter un ou des article(s) &agrave;  la liste </a> - <a href="lecture2-liste-course1.php">Voir la liste </a>
    </body>
    </html>
    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Bonjour,

    c'est normal le fichier n'existe plus ! $ouvre ne retourne pas une ressource comme il devrait le faire, tu dois plutôt commencer par vérifier l'existence du fichier.
    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
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    if(file_exists('course1.txt')) 
    {
    $ouvre=fopen("course1.txt","r");  // ouverture du fichier
    while (!feof ($ouvre))          // tant que pas en fin de fichier
    	{
     
    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
    $donnee=explode("*",$lecture);  // parsing des données basé sur "*")
     
    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
    //echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
     
    for ($i=0;$i<=$combien;$i++)
    	{
    echo $donnee[$i],"<br>";  // affichage des données
    	}
     
    	}
    fclose($ouvre);		// fermeture
    }
    ?>
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    J'ai donc ajouté dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(file_exists('course1.txt')) 
    {
    Le navigateur m'affiiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected $end in L:\Program files 2\wamp\www\maison\N4\liste-courses\liste-courses-1\lecture1-liste-course1.php on line 49
    Ok mais je ne comprend pas car deplus la ligne 49 n'existe pas, la derniere ligne est la 48 qui corespond à </html> voir ci-desous

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
     
    <script type="text/javascript">
    <!-- Debut 
     
    function imprime() {
    if (typeof(window.print) != 'undefined')
     { window.print(); }
    } 
     
    // -->
    </script> 
    </head>
     
    <body>
     
    <p>
    <?php
    if(file_exists('course1.txt')) 
    {
    $ouvre=fopen("course1.txt","r");  // ouverture du fichier
    while (!feof ($ouvre))          // tant que pas en fin de fichier
    	{
     
    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
    $donnee=explode("*",$lecture);  // parsing des données basé sur "*")
     
    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
    //echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
     
    for ($i=0;$i<=$combien;$i++)
    	{
    echo $donnee[$i],"<br>";  // affichage des données
    	}
     
    	}
    fclose($ouvre);		// fermeture
    ?>
    </p>
    <p><a href="ecrire-liste-course1.php">Ajouter un article &agrave;  la liste </a> - <a href="supprimer-liste-course1.php">Effacer la liste </a> - <a href="lecture1-liste-course1.php">Voir la liste avec les cases à cocher</a> - <a href="#" onclick="imprime(); return false">Imprime la page</a>
    </p>
    </body>
    </html>
    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    il te manque une accolade fermante

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
     
    <script type="text/javascript">
    <!-- Debut 
     
    function imprime() {
    if (typeof(window.print) != 'undefined')
     { window.print(); }
    } 
     
    // -->
    </script> 
    </head>
     
    <body>
     
    <p>
    <?php
    if(file_exists('course1.txt')) 
    {
    $ouvre=fopen("course1.txt","r");  // ouverture du fichier
    while (!feof ($ouvre))          // tant que pas en fin de fichier
    	{
     
    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
    $donnee=explode("*",$lecture);  // parsing des données basé sur "*")
     
    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
    //echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
     
    for ($i=0;$i<=$combien;$i++)
    	{
    echo $donnee[$i],"<br>";  // affichage des données
    	}
     
    	}
    fclose($ouvre);		// fermeture
    }
    ?>
    </p>
    <p><a href="ecrire-liste-course1.php">Ajouter un article &agrave;  la liste </a> - <a href="supprimer-liste-course1.php">Effacer la liste </a> - <a href="lecture1-liste-course1.php">Voir la liste avec les cases à cocher</a> - <a href="#" onclick="imprime(); return false">Imprime la page</a>
    </p>
    </body>
    </html>
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Merci de votre aide.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

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

Discussions similaires

  1. comment ecrire dans un fichier txt avec WriteFile?
    Par Art19 dans le forum Langage
    Réponses: 13
    Dernier message: 04/07/2007, 15h50
  2. Ecrire dans un fichier txt en 4gl
    Par patriceguic dans le forum Informix
    Réponses: 2
    Dernier message: 07/05/2007, 20h44
  3. Ecrire dans un fichier .txt
    Par chabRRR dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 19h30
  4. Ecrire dans un fichier .txt
    Par yinyann86 dans le forum Pascal
    Réponses: 17
    Dernier message: 24/11/2006, 13h36
  5. Ecrire dans un fichier txt sans en effacer le contenu
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/12/2005, 18h11

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