1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Txt in textarea öffnen, bearbeiten & speichern

Dieses Thema im Forum "PHP" wurde erstellt von Odomanie, 29. April 2012.

  1. Odomanie

    Odomanie Mitglied

    Hallo zusammen :)

    ich habe einen recht simplen code, der eine txt-datei in einer textarea öffnen soll und per submit abspeichern sollte. die rechte der php sind mit Chmod 666 ausreichend.

    Leider bekomme ich mit meinem script die folgenden fehlermeldungen:

    PHP:
    1.   <?
    2.         if ($_POST) {
    3.        
    4.         $file = fopen('http://www. [...]/test.txt', 'w', 1);
    5.         fwrite($file, $_POST['textarea']);
    6.         fclose($file);
    7.         ?>
    8.         <b><font color="#FF0000">Das Speichern war erfolgreich.</font></b>
    9.         <textarea name="textarea2" cols="91" rows="50"><? include("http://www. [...]/test.txt");?></textarea>
    10.         <?
    11.         } else {
    12.        
    13.         ?>
    14.         <form name="efb" method="post" action="http://www. [...]/test-txt-speichern.php">
    15.         <textarea name="textarea" cols="91" rows="50"><? include("hhttp://www. [...]/test.txt");?></textarea>
    16.         <br><input type="submit" name="Submit" value="Speichern"></form>
    17.         <?
    18.         }
    19. ?>
    Viele Grüße

    Odo
     
  2. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Liegt die Datei auf dem gleichen Host, auf dem auch das PHP-Script ausgeführt wird?
     
  3. Odomanie

    Odomanie Mitglied

    ja, tut sie.
     
  4. saftmeister

    saftmeister Nutze den Saft! Premium-User

  5. javaDeveloper2011

    javaDeveloper2011 Erfahrenes Mitglied

    Hi,

    noch was:
    beim 2. include lieber
    Code (PHP):
    1. if(file_exists("test.txt"))
    voranstellen, oder gibt es die Dateien immer schon vorher?

    Dein Script soll ja beim Form-Submit selbst aufgerufen werden, also kannst du das
    Code (HTML5):
    1. action="http://www. [...]/test-txt-speichern.php"
    getrost weglassen, wenn du die Datei nämlich mal umbenennst/verschiebst könnte es sonst unnötig Probleme geben.

    Gruß javaDeveloper2011
     
  6. Odomanie

    Odomanie Mitglied

    Wunderbar. Jetzt hat es geklappt :) Danke!

    Allerdings werden jetzt beim speichern der txt-Datei "\" vor die " gesetzt, also der abgespeicherte code maskiert.

    wie könnte ich das verhindern?
     
  7. saftmeister

    saftmeister Nutze den Saft! Premium-User

  8. Odomanie

    Odomanie Mitglied

    Danke für eure Hilfe!

    Aus meiner sicht muss ich nun folgendes schreiben. Die \ werden nun trotzdem hinzugefügt. Kann mir jemand erklären warum?

    PHP:
    1. <?        if ($_POST) {
    2.        
    3.         $file = fopen('pfad/test.txt', 'w', 1);
    4.         $_POST['textarea'] = stripslashes($_POST['textarea']);
    5.         fwrite($file, $_POST['textarea']);
    6.         fclose($file);
    7.         ?>
    8.         <b><font color="#FF0000">Der Eintrag wurde erfolgreich geändert.</font></b><br>
    9.        
    10.         <form method="post" action="http://www.domain.de/test-txt-speichern.php">
    11.         <textarea name="textarea" style="width:99%;" rows="15"><? include("http://www.domain.de/pfad/test.txt");?></textarea>
    12.         <br><input type="submit" name="Submit" value="Speichern"></form>
    13.  
    14.  
    15.         <?
    16.         } else {
    17.         ?>
    18.  
    19.         <form method="post" action="http://www.domain.de/test-txt-speichern.php">
    20.         <textarea name="textarea" style="width:99%;" rows="15"><? include("http://www.domain.de/pfad/test.txt");?></textarea>
    21.         <br><input type="submit" name="Submit" value="Speichern"></form>
    22.         <?
    23.         }
    24. ?>
    Viele Grüße

    Odo
     
  9. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Guten Morgen.

    Versuch es mal so:

    Code (PHP):
    1.         $file = fopen('pfad/test.txt', 'w', '1');
    2.         fwrite($file, stripslashes( $_POST['textarea'] ) );
    3.         fclose($file);
     
  10. Odomanie

    Odomanie Mitglied

    Jetzt funktioniert es. Dankeschön! :)