Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Einfacher Texteditor unter PHP [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Einfacher Texteditor unter PHP


 
Tomcat Chriss
14-12-2003, 20:59 
 
Hallo,

ich habe für mein Script einen kleinen Onlineeditor geschrieben, um kurzfristige Änderungen an meinem Script von überall erledigen zu können, ohne die Datei per FTP herunterzuladen.

Jetzt möchte ich das Script überarbeiten und möchte hierzu den Editor auch etwas besser gestalten. Ist es möglich, den Editor so umzuschreiben, dass ich nicht mehr über das Formular-Absenden, den Text zurückzuschreiben, sondern über beispielsweise einen Button "Speichern" die Datei direkt zu speichern und die neu geschriebene Datei mit dem Editor wieder zu öffnen?

Hat evtl. jemand noch Verbesserungsvorschläge?

Hier der eigentliche Editor:

$file = "index.php";
$oeffnen = fopen ($file, "r");
$lesen = fread ($oeffnen, filesize ($file));

echo "<form METHOD=\"POST\" action=\"index.php\">";
echo "<input type=hidden name=action value=write>";
echo "<textarea rows=30 name=texteditor cols=110>";
echo htmlspecialchars($lesen);
echo "</textarea><br>";
echo "<br>";
echo "<input type=submit value=Abschicken name=B1>";
echo "<input type=reset value=Zurücksetzen name=B2>";
echo "</form>";


Damit wird dann über eine CASE-Funktion im Kopf des Scriptes der Text zurückgeschrieben:

$file = "index.php";
$oeffnen = fopen ($file, "w");
$schreiben = fwrite ($oeffnen, stripslashes($texteditor));
$schliessen = fclose($oeffnen);


Vielen Dank für jede Hilfe, Chriss

 
TobiaZ
14-12-2003, 21:02 
 
Ist es möglich, den Editor so umzuschreiben, dass ich nicht mehr über das Formular-Absenden, den Text zurückzuschreiben, sondern über beispielsweise einen Button "Speichern" die Datei direkt zu speichern und die neu geschriebene Datei mit dem Editor wieder zu öffnen? klar!

 
Tomcat Chriss
14-12-2003, 21:53 
 
Hallo TobiaZ,

sehr ausführliche Antwort :rolleyes:. Kannst Du mir dabei helfen, den Editor umzuschreiben? Wie kann ich das mit dem Speichern-Button realisieren?

Danke, Chriss

 
mrhappiness
14-12-2003, 22:04 
 
mach aus value=Abschicken einfach value=Speichern, dann hast du deinen speichern-button

und dein skript so zu erweitern, dass es die änderungen speichert und die geänderte datei wieder öffnet sollte auch nicht so schwer sein oder?

 
Tomcat Chriss
14-12-2003, 22:11 
 
Ist hier heute die große Verarsche angesagt? Meine Postings zielen eher darauf hinaus, den Code zu optimieren, weil das Speichern so immer ziemlich lange dauert.

Es wäre schön, wenn ihr mir nützliche Tipps zur Optimierung geben könntet, ohne mich weiter zu verarschen.

Mit dem erneuten Laden das habe ich z.B. noch nicht hinbekommen, wie lässt sich das realisieren? Ich habe es mit einem erneuten Aufrufen der Funktion versucht, dass hat aber nicht funktioniert.

Danke, Chriss

 
mrhappiness
14-12-2003, 22:14 
 
du bearbeitest ne datei auf dem server, also musst du, um irgendwas mit der datei machen zu können, das formular abschicken

da isses egal, wieviel buttons du hast und wie du die nennst

das mit deiner case-funktion hab ich nich so ganz verstanden

 
Tomcat Chriss
14-12-2003, 22:34 
 
Über das Formular schicke ich die Daten zurück an die index.php. Als Hidden-Feld habe ich ACTION mit dem Wert WRITE angegeben.

Am Anfang meines Scriptes kommt nach den Includes die Abfrage nach ACTION in einer SWITCH-Funktion. Unter dieser SWITCH-Funktion habe ich ein CASE "write", in dem ich dann die Daten zurückschreibe. Abschließend rufe ich in diesem CASE wieder den Editor auf, aber das macht er einfach nicht.


...
switch ($action)
{
...

case "write":
$file = "index.php";
$oeffnen = fopen ($file, "w");
$schreiben = fwrite ($oeffnen, stripslashes($texteditor));
$schliessen = fclose($oeffnen);
editor();
break;

...
}

 
Tartax
15-12-2003, 14:29 
 
1: Switch ist kleine Funktion
2: Was Passiert denn?? Wird das Formularfeld leer angezeigt oder passiert garnichts? Hat editor() eine Rückgabe wert??

 
Tomcat Chriss
15-12-2003, 14:41 
 
Hallo Tartax,

habe meinen Fehler gefunden. Aus irgendeinem Grund stand editor() plötzlich unter dem break;, so dass er hier die Verarbeitung schon vor dem erneuten Aufruf des Editors beendet hat :rolleyes: .

Ich habe meinen Fehler korrigiert und jetzt ruft er mir die Datei nach dem Speichern auch wieder auf und wenn es keine Möglichkeit gibt, das ganze ein wenig zu Beschleunigen, dann ist mein Problem hiermit gelöst.

Danke an alle, Chriss


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:07 Uhr.