Online Datei bearbeiten

cojak

Grünschnabel
Ich habe ein Problem mit folgendem Script. Ich möchte gerne einen Administrationsteil in eine Kunden Homepage einbauen, mit dem ich Dateien bearbeiten kann, dies funktioniert auch soweit bis auf das speichern, das funktioniert leider nicht, kann auch nicht feststellen wo der Fehler liegt.

ausführbar mit: editieren.php?file="dateiname.txt .php .html"

PHP:
<?php
if (empty($gesendet)) {
    ob_start();
    readfile($_GET['file']);
    $file=ob_get_contents();
    ob_end_clean();

    echo "Zu bearbeitende Datei: " ;
    echo ($_GET['file']) ;
    
    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>
    <br>
    <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);
}

?>
Ich danke allen die sich diesem Problem witmen!
MfG Alias: cojak
 
Hallo,

welche Rechte haben den die Dateien, welche du bearbeiten willst?


Muss das nicht so heißen?
PHP:
if(fwrite == ($write, $_POST['datei'])) { 
		echo "Änderung erfolgreich"; 
	} else { 
		echo "Schreiben fehlgeschlagen. Sind die Rechte richtig gesetzt?"; 
	}
 
Zuletzt bearbeitet:
forsterm hat gesagt.:
Hallo,
Muss das nicht so heißen?
PHP:
if(fwrite == ($write, $_POST['datei'])) { 
		echo "Änderung erfolgreich"; 
	} else { 
		echo "Schreiben fehlgeschlagen. Sind die Rechte richtig gesetzt?"; 
	}

Hallo, nene des paßt scho
fwrite gibt TRUE oder FALSE zurück siehe php.net - fwrite

Zum Problem... imho liegt es an der if Abfrage. Da die Variable $gesendet nicht gesetzt wird ist sie immer FALSE. Dadurch wirst Du nie in den else Teil gelangen.

Mit

Code:
if (empty($_POST["gesendet"])) {
....
<input type="hidden" name="gesendet" value="1">
...
...

muss es eigentlich gehen...

Viele Grüße Clemens
 
Zurück