Tutorials

Datei online bearbeiten Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
Datei online bearbeiten
Datei online per Formular bearbeiten.

7548 - ntmb - 07.01.2007 16:13 Uhr - Version: 2 - - verlinken als BB-Code


In Diesem Tutorial möchte ich euch gerne Erklären, wie man eine Dateie online von der Webseite aus editieren kann.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
$file
="datei.txt"// CHMOD 777
if(!file_exists($file)){ echo "Die Datei <u>$file</u> existiert nicht! :-(\n"; }
else


    if(isset(
$_POST[ok])){
        
$datei_speichern=@fopen("$file","w"); 
        if(!@
fwrite($datei_speichern,$_POST['text']))
            echo 
"Es ist ein Fehler aufgetretten beim Editieren der Datei! :-(\n"
        else
            echo 
"Die Datei <u>$file</u> wurde editiert! :-)\n"
        @
fclose($datei_speichern); 
    } 

    
ob_start();
    
readfile($file);
    
$html=ob_get_contents();
    
ob_end_clean();

    echo 
'<form action="" method="POST">
    <input type="hidden" name="ok" value="1">
    <textarea name="text" cols="50" rows="5">'
.htmlspecialchars($html).'</textarea><br>
    <input type="submit" value="speichern">
    </form>'

}
?>


Erklärung:
Man muss bei $file angeben welche Datei editiert werden soll, diese benötig Schreibrechte (CHMOD 777).
Dann wird bei dem Script abgefragt, ob die angegebene Datei nicht existiert und anschließend abgebrochen, ansonsten (else) geht es weiter mit dem Script.

Weiter unten bei dem Script sieht man eine echo Ausgabe, diese stellt den Html-Code mit dem Formular für das Editieren der Datei dar.
Das Formular ist so aufgebaut:
Start
- unsichtbares Feld mit dem Wert = 1
- textarea hier wird der Text/Inhalt der zum editieren Datei ausgegeben*
- Button zum Versenden
Ende

* Der Inhalt der Datei muss zusätzlich noch mit htmlspecialchars versehen werden, ansonsten würden die ganzen Zeichen <, >, .... nicht abgeändert werden und dies hätte zu Folge das man einen Bug im Script hat und man einfach nur mit </textarea> die textarea beenden kann und danach würde der folgende Textdann nicht mehr zu textarea gehören.

Mehr zu ob_start();
Hiermit kann man Dinge ausführen lassen und dann mit ob_get_contents(); einer Variable zuweisen, in diesem Fall $html. Dies benötigt mann alles weil man ansonsten readfile nicht einer Varable zuweisen kann. Mit ob_end_clean(); wird dies dann beendet.

Was beim Versenden passiert:
Wenn man den Inhalt nach seinen Wünschen angepasst hat und auf speichern geklickt hat, dann wird weiter oben im Script die Frage gestellt ob $_POST[ok] gegeben ist, diese Variable wurde einen Wert zugewiesen und zwar 1 (siehe Aufbau Formular).
Dann wird die Datei editiert, aber dies wird mit einer Abfrage versehen und zwar wenn die Datei nicht editiert wurde, dann wird ausgegeben, dass es einen Fehler gab beim Edtieren, ansonsten wird ausgeben das die Datei .... editiert wurde.



Viel Spass damit Smily NR:7

Ich hoffe ich konnte euch gut genug erklären wie dieses Script funktioniert.

mfg Eugen

Mitglieder-Kommentare


#2 von chrisboy
kann man auch was einbauen. das nur eine URL z.b. http://www.urlaub.jpg eingefügt werden kann und das der User kein misst baut?
#1 von michael96
Der Script ist genial, vielen Dank! Smily NR:3 Smily NR:6 Smily NR:7

« 1 2 »

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)