Inhalt des html-textarea in eine Datei schreiben

  • Hallo Leute,

    ich habe folgende Situation:

    Ich habe auf der Webseite ein Textarea, wo der Benutzer HTML-Code hineinschreiben kann und darunter einen Button "Vorschau". Wenn der Benutzer auf den Button klickt, soll der Inhalt des Textarea (der HTML-Code, den der Benutzer gerade eingegeben hat) in eine htm-Datei geschrieben werden, sodass diese htm-Datei gleich danach in einem Frame unterhalb des Buttons angezeigt werden kann. (Das soll eine HTML-Vorschau-Funktion werden.)

    Das Problem ist, dass ich bis jetzt keine Möglichkeit gefunden habe, mit JavaScript den Inhalt des Textarea (document.getElementById("Textfeld").value) in eine htm-Datei zu schreiben. Wenn dieses Problem gelöst wäre, ist der Rest dann eh einfach.

    Oder gibt es eine andere Möglichkeit, um den Inhalt vom Textarea direkt vom Browser auszuführen?

    Oder lässt sich dieses Problem mit VBSript oder PHP lösen?

    (Eigentlich ist die Funktion, die ich suche, dieselbe, die hier im Forum schon funktioniert. Denn, wenn man nach dem Betrag-verfassen auf "Vorschau" klickt und der Beitrag auch html-Code enthalten darf, passiert eigentlich eh ganau das, was ich auf meiner Webseite möchte.)

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

  • so in etwa ????

  • Vielen Dank für die schnelle Antwort und für das php-Script!

    Leider funktioniert es bei mir nicht. Auf meinem Rechner lokal kann ich sicher eh nicht funktionieren, weil ich kein php installiert habe, aber auf dem Server des Professors (weil ich es für eine LVA der Uni mache) ist php installiert.

    Auf dem Server ist Moodle installiert (da wir in der LVA einen Moodle-Kurs erstellen) und das Moodle selbst läuft auf php. Ich habe die Datei jetzt Vorschau.php genannt und über Moodle unter /files/ hochgeladen und die Datei von dort angeklickt.

    Das obere Fenster, wo man den HTML-Code eingeben kann, ist nach dem Laden der php-Datei nicht leer, sondern es steht dort diese Zeichenfolge: "<?=$_POST['mein_html']?>"

    Das bedeutet wahrscheinlich, dass der Browser dies nicht als php-Code erkennt?

    Wenn ich auf "Testen" klicke, erscheint im unteren Fenster "No valid arguments supplied" - das ist sicher eine Moodle-Standardausgabe, wenn eine Seite nicht geöffnet werden kann. Wenn ich auf "Speichern" klicke, passiert leider nichts. Es sollte ja "Ihre Daten wurden gespeichert!!!!" erscheinen.

    Woran kann es liegen? Das php-Script ist ja sicher korrekt?

    (Ich verwende den Internet Explorer 6.0.)

    Eine Frage habe ich noch: Wenn das php-Script auf dem Server des Professors liegt und mit "$datei = fopen("textdatei.txt", "w+"); " eine Datei geöffnet wird, wird diese Datei auf dem Serverrechner oder auf dem Client (dem Anwender-PC) geöffnet? (Ich habe bis jetzt noch nichts mit php programmiert und gerade erst mit html und javascript begonnen.)

    Nochmals im Voraus vielen Dank.

    Viele Grüße

    Robert

  • ändere diese zeile
    [php:1:cbad0c7af0]<form name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>?iframe=yes" target="myframe">[/php:1:cbad0c7af0]

    in diese:
    [php:1:cbad0c7af0]<form name="form1" method="post" action="<?php echo $PHP_SELF; ?>?iframe=yes" target="myframe"> [/php:1:cbad0c7af0]

  • Danke für den Änderungsvorschlag der Zeile '<form name="form1"...'

    Es sieht jetzt schon besser aus als vorhin, aber ein Fehler ist leider immer noch drinnen.

    Wenn ich jetzt auf den Button "testen" oder "speichern" klicke, versucht der Browser jetzt ins untere Fenster eine html hineinzuladen, weil im unteren Fenster die Meldung "Entschuldigung, die angeforderte Datei wurde nicht gefunden." (eine Moodle-Fehlermeldung) erscheint. Vorhin ist dort "No valid arguments supplied" gestanden.

    Mein Browser erkennt in dieser Zeile nicht den php-Code:

    Code
    <textarea name="mein_html" cols="65" rows="20"><?=$_POST['mein_html']?></textarea>

    Wenn ich dieses php-File starte, erscheint im oberen Fenster gleich der Textinhalt "<?=$_POST['mein_html']?>". Der Browser interpretiert das scheinbar als normalen Text. Wie kann ich diese Zeile umschreiben, damit dies als php-Code erkannt wird?

    Ich denke, das ist auch der Grund, dass beim "Speichern"-Button nichts passiert. Wahrscheinlich, weil "fputs($datei, $_POST['mein_html'] );" nicht ausgeführt werden kann, da die Referenz "$_POST['mein_html']" nicht bekannt ist.

    Im Voraus danke für Eure Hilfe!

    Viele Grüße

    Robert

  • Das leigt an deinem server, der unterstützt nicht alles so wie ich es gechrieben habe, das ist für eine stink noirmalen apache mit php geschrieben.


    aber guck mal so:

    Ansonsten melde dich mal bie funpic.de oder so an, damit du mal fix an eiene apache mit php kommst, kann deien server leider nicht beurteilen, da ich dehn garnicht kennne.

  • Vielen Dank für Eure Codebeispiele.

    Leider funktioniert der letzte Code bei mir auch nicht. Aber das liegt sicher an dem Server, denn ich habe gerade auch ein Beispiel-php-Code aus einem Tutorial gefunden, dass den Text aus einem Textarea im Formular mit echo ausgeben sollte, und dieser Code funktioniert leider auch nicht:

    Wenn ich auf "Text absenden" klicke, erscheint "No valid arguments supplied" (eine Moodle-Meldung) und wenn ich mir die URL der Adresse ansehe, sehe ich "http://www.weissenboeck.com/moodle/file.php/80/<?php%20echo$_SERVER['PHP_SELF'];%20?>"

    Bei php-code (zum Schreiben in einer Datei) lautet die URL des unteren Frames "http://www.weissenboeck.com/moodle/file.php/80/<?=$_SERVER['PHP_SELF']?>?iframe=yes"

    Ich denke, da liegt der Fehler, dass der php-Interpreter, der am Server installiert ist, das nicht richtig verarbeitet?

    Ich habe auch auf funpic.de geschaut, dort habe ich zwar gratis-webspace gefunden, allerdings kann man sich dort keine php-files uploaden. Andere Server (mit php) sind dort leider kostenpflichtig.

    Wisst Ihr, wo man gratis einen php-fähigen webspace bekommen kann? Es würde mir genügen, wenn der webspace nur kurzfristig zu Demozwecken angeboten wird, weil ich das php-script mal testen möchte, um zu sehen, ob es läuft (nachdem ich mit php noch nicht sehr vertraut bin), bevor ich für den webspace zahle.

    Ich habe in Tutorials jetzt über die gesamte Sprachsynatax von php gelesen, allerdings fehlt mir der Zugriff auf das HTML-Dokument und die HTML-Elemente noch komplett, und eine Auflistung aller vordefinierten Objekte, Funktionen und Variablen habe ich auch noch nicht gefunden. Gibt es hierfür einen empfehlenswerten Link zum Nachlesen?

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

  • zur not ersetzmal aus meien oder dem gefunden code, alle echo mit print anweisungen.

    Da der moogle der was auch immer damit ein problem zu haben scheint.

    BZW auf was für php läuft der ??

  • Ich habe jetzt von einem Studienkollegen erfahren, dass man auf http://www.curvedspaces.com/ gratis Webspace bekommen kann, wobei dort auch PHP4 unterstützt wird. Laut der Providerbeschreibung ist dies der einzige Provider, der zugleich gratis ist, als auch PHP unterstützt. Ich werde mir morgen das php-File dort hochladen und werde dann posten, ob es ein Erfolg war oder ob es noch Fehler gibt.

    Viele Grüße

    Robert

  • Danke für den Link auf das Posting mit den kostenlosen Webspaceanbietern! Ich habe nicht gedacht, dass es doch so ein großes Angebot an freiem Webspace mit php-Unterstützung gibt.

    Viele Grüße

    Robert

  • Ich habe mir jetzt einen Webspace auf http://www.space4free.de eingerichtet und die php-Datei dort hochgeladen und es funktioniert! Den Code möchte ich insoforn erweitern, dass man in das Textarea JavaScript eingeben kann (dann im nächsten Schritt soll es auch mit C-Code funktionieren - wegen printf(), usw.), der im unteren Fenster automatisch ausgeführt wird. Ich habe den php-Code schon erweitert, allerdings scheint noch ein Fehler drinnen zu sein...

    Dies ist mein aktueller php-Code:
    (Den php-Teil für das Speichern der Textdatei habe ich wieder entfernt, weil es mit dem Preview-Button eh auch funktioniert hat und die Datei beim Klick auf "Speichern" nicht auf den Server geschrieben wurde. Vielleicht waren die Schreibrechte für "Textdatei.txt" (am Server) nicht gesetzt.)

    Ich glaube, das einzige Problem in diesem Code ist diese Zeile:

    HTML
    $Ausgabe = 
        "<html><body><script language=JavaScript>" . $_POST['mein_html'] . "</script></body></html>";

    (Ich habe es im Programm daneben eh noch erläutert.)

    Wenn ich ins Textarea "mein_html" den JavaScript-Befehl "document.write('Hallo');" eingebe, meldet mir der Browser einen Fehler. Bei der Eingabe von "var i = 10;" meldet der Browser jedoch keinen Fehler.

    Gibt die php-Variable $_POST['mein_html'] eh das Textarea unverändert zurück?

    Eine Frage hätte ich noch: Welche Rolle spielt der php-Code im "<textarea name="mein_html" cols="60" rows="10" wrap="soft"><?PHP echo $_POST['mein_html']; ?></textarea>". Würde "$Ausgabe = ...." und "echo $Ausgabe;" nicht ausreichen, um den html-Code an das iframe zu schicken? (Ich bin im php noch Anfänger.)

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüße

    Robert

  • Ich bin dem Fehler jetzt schon auf der Spur, aber eine Lösung habe ich trotzdem noch nicht.

    Ich habe den oberen Teil des php-Codes wieder so geändert (wie es am Anfang war):

    Jetzt soll wider (wie am Anfang) der HTML-Code des oberen Fensters im unteren Fenster "ausgeführt" werden.

    Dabei ist mir jetzt folgendes aufgefallen:

    Wenn ich ins obere Fenster "document.write('Hallo');" schreibe, dann erscheint im unteren Fenster allerdings "document.write(\'Hallo\');" !

    Gibt es eine Möglichkeit, dass der Backslash vor Anführungszeichen oder Hochkomma nicht automatisch eingefügt wird? Und warum wird der Backslash eigentlich eingefügt?

    Denn durch den Backslash kann das JavaScript natürlich nicht funktionieren, weil "document.write(\'Hallo\');" natürlich nicht ausgewertet werden kann.

    Viele Grüße

    Robert