Txt in textarea öffnen, bearbeiten & speichern

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:

Warning: fopen(http://www. [...]/test.txt) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections in /www/.../test-txt-speichern.php on line 9

Warning: fwrite() expects parameter 1 to be resource, boolean given in /www/.../test-txt-speichern.php on line 10

Warning: fclose() expects parameter 1 to be resource, boolean given in /www/.../test-txt-speichern.php on line 11

PHP:
  <?
        if ($_POST) {
        
        $file = fopen('http://www. [...]/test.txt', 'w', 1);
        fwrite($file, $_POST['textarea']);
        fclose($file);
        ?>
        <b><font color="#FF0000">Das Speichern war erfolgreich.</font></b>
        <textarea name="textarea2" cols="91" rows="50"><? include("http://www. [...]/test.txt");?></textarea>
        <?
        } else {
       
        ?>
        <form name="efb" method="post" action="http://www. [...]/test-txt-speichern.php">
        <textarea name="textarea" cols="91" rows="50"><? include("hhttp://www. [...]/test.txt");?></textarea>
        <br><input type="submit" name="Submit" value="Speichern"></form>
        <?
        }
?>

Viele Grüße

Odo
 
Hi,

noch was:
beim 2. include lieber
PHP:
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
HTML:
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
 
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?
 
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:
<?        if ($_POST) {
        
        $file = fopen('pfad/test.txt', 'w', 1);
        $_POST['textarea'] = stripslashes($_POST['textarea']);
        fwrite($file, $_POST['textarea']);
        fclose($file);
        ?>
        <b><font color="#FF0000">Der Eintrag wurde erfolgreich geändert.</font></b><br>
        
        <form method="post" action="http://www.domain.de/test-txt-speichern.php">
        <textarea name="textarea" style="width:99%;" rows="15"><? include("http://www.domain.de/pfad/test.txt");?></textarea>
        <br><input type="submit" name="Submit" value="Speichern"></form>


        <?
        } else {
        ?>

        <form method="post" action="http://www.domain.de/test-txt-speichern.php">
        <textarea name="textarea" style="width:99%;" rows="15"><? include("http://www.domain.de/pfad/test.txt");?></textarea>
        <br><input type="submit" name="Submit" value="Speichern"></form>
        <?
        }
?>

Viele Grüße

Odo
 
Guten Morgen.

Versuch es mal so:

PHP:
        $file = fopen('pfad/test.txt', 'w', '1');
        fwrite($file, stripslashes( $_POST['textarea'] ) );
        fclose($file);
 
Zurück