[Hilfe] Script zum bearbeiten von Dateien geht nicht, wieso?

bob in motion

Grünschnabel
Ich habe nach langer Suche im Internet ein kleines Script gefunden um Dateien bearbeiten zu können.
Hier der Quelltext:
PHP:
<?php 
if (empty($gesendet)) { 
    ob_start(); 
    readfile($_GET['file']); 
    $file=ob_get_contents(); 
    ob_end_clean(); 

    echo '<html> 
    <head> 
    <title>'.$_GET['file'].' editieren</title> 
    </head> 
    <body> 
    <form action="'.$_SERVER['SCRIPT_NAME'].'" method="post"> 
    <input type="hidden" name="filename" value="'.$_GET['file'].'" /> 
    <textarea name="datei" cols="50" rows="10">'.htmlspecialchars($file).' 
    </textarea> 

    <input type="submit" name="ok" value="speichern"> 
    </form> 
    </body> 
    </html>'; 
} else { 
    $write=fopen($_POST['filename'], "w"); 
    if(fwrite ($write, $_POST['datei'])) { 
        echo "Änderung erfolgreich"; 
    } else { 
        echo "Schreiben fehlgeschlagen. Sind die Rechte richtig gesetzt?"; 
    } 
    fclose($write); 
} 
?>

Aufgerufen wird das Script mit dem Parameter file: editieren.php?file=datei.php .


Nur... es funktioniert einfach nicht.
Also, die Datei wird zwar aufgerufen, jedoch kann man die geänderten Daten nicht speichern, wieso?
 
Was meinst du mit "man kann die geänderten Daten nicht speichern" ...

Gibt der Script die "Schreiben fehlgeschlagen" aus, oder was?
 
Hi!

Willst Du den Inhalt der Datei überschrieben oder willst Du den Inhalt verändern?
Wenn Du den Inhalt der Datei überschrieben (also alten Kram raus, neuen Kram rein) willst, da hätte ich eine Lösung.

redlama
 
Ich will das ganze so, dass der alte Kram angezeigt wird.

Dann kann ich den Inhalt beliebig verändern.

Wenn ich dann auf "Speichern" gehe, wird der alte Kram gelöscht und der neue eingefügt.
 
Ich kann dir ja mal beschrieben was ich gemacht habe, vielleicht hilft Dir das weiter, ...

$text = "blah, blah, blah, ...";
$ftp = @fopen("xyz.doc", "r+") or die(Datei kann nicht ge&ouml;ffnet werden);
fwrite($ftp, $text);
fclose($ftp);

Und dann hast Du nur noch den Inhalt der Variblen text in Deiner Datei.
Zumindest war es bei mir so.

redlama
 
Das Grundprinzip steht jetzt!
Ich habe das ganze so gelöst:

edit.php

PHP:
<form method="POST" action="2.php">
<p>
<input name="dateiname" type="text" id="dateiname" value="test.php" size="20">
(Dateiname) </p>
<p>
<textarea name="text" cols="30" rows="5" id="text"></textarea>
<br>
<br>
<input name="Speichern" type="submit" id="Speichern" value="&Auml;ndern"> 
</p>
</form>

2.php

PHP:
<?php 
$fp = fopen($dateiname,"w");//gewünschte Datei wird zum schreiben geöffnet
fwrite($fp,"$text\n"); // Daten werden jetzt mit fwrite in die php Datei geschrieben.
fclose($fp);//Datei wird wird wieder geschlossen
?>

Und es funktioniert.
 
Zurück