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 Grünschnabel

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

    ja, tut sie.
  4. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Prima, dann lass das http:// und die Domain weg, und geb einen Pfad an, der relativ vom PHP-Script ist. Beispiel:

    Script liegt in http://www.test.de/php-scripts/schreiben.php
    Text-Datei liegt in http://www.test.de/text-files/datei.txt
    Pfad, der in fopen() verwendet werden sollte: ../text-files/datei.txt

    fopen() kann nicht schreibend auf URLs zugreifen - steht aber eigentlich auch schon in der Fehlermeldung ;-)
  5. javaDeveloper2011

    javaDeveloper2011 Erfahrenes Mitglied

    Hi,

    noch was:
    beim 2. include lieber
    Code (PHP):
    1.  
    2. if(file_exists("test.txt"))
    3.  
    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.  
    2. action="http://www. [...]/test-txt-speichern.php"
    3.  
    getrost weglassen, wenn du die Datei nämlich mal umbenennst/verschiebst könnte es sonst unnötig Probleme geben.

    Gruß javaDeveloper2011
  6. Odomanie

    Odomanie Grünschnabel

    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 Grünschnabel

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

    Odo
  9. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Guten Morgen.

    Versuch es mal so:

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

    Odomanie Grünschnabel

    Jetzt funktioniert es. Dankeschön! :)

Diese Seite empfehlen