kostenloser Webspace werbefrei: lima-city


Simples Problem: .txt erstellen lassen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ccenter

    ccenter hat kostenlosen Webspace.

    Halo,

    versuche gerade aus Übungszwecken folgendes zu realisieren:
    Ich habe eine Textbox auf meiner Homepage, in den ich einen Text schreiben kann. Wenn ich auf den nebenstehenden Button drücke, wird der Text als .txt im selben Verzeichnis gespeichert in der auch meine index.php liegt.

    Wäre nett wenn mir jemand sagen könnte wie ich das richtig machen muss:

    <html>
    	<head>
    	<title>Übung</title>	
    	</head>
    
    
    	<body>
    			
    <?php
    $datei = fopen("saved.txt", "a");
    
    
    <form action="index.php">
    
        <textarea cols="20" rows="4" name="textfeld"></textarea>
        <input type="button" name="btn1" value="Text Speichern"
          onclick="fwrite($datei,  this.form.textfeld.value)">
    
    </form>
    
    ?>
    	
    </body>
    </html>



    An dem Code ist wahrscheinlich einfach mal alles falsch aber ich wäre sehr dankbar für ein vollständiges Codebeispiel, daran lernt man am besten. Die Stelle wie man ein Event deklariert deckt mein Tut nicht vernünftig ab. Um das zu realisieren was ich möchte, ist es dafür notwendig per POST den Befehl an eine andere Seite zu übergeben und den Text von der schreiben zu lassen? So wüsste ich wie es geht aber ich möchte nicht die Seite wechseln sondern auf dieser bleiben ohne eine neue zu laden.

    Beitrag zuletzt geändert: 17.8.2011 13:03:58 von ccenter
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Es sind einige grundlegende Fehler drin:
    -> Du versuchst, html-Code einfach in php zu schreiben.
    Da php html-Code nicht als solchen erkennt, musst du den html-Code mit echo ausgeben.

    -> onclick ist ein Attribut, mit dem JavaScript ausgeführt wird, nicht php.
    Du musst dem button den Typ submit geben und auf eine andere Seite (form action) verweisen.
    Auf dieser anderen Seite werden die übertragenen Daten (dem form noch method="POST" hinzufügen) mit php verarbeitet und in die Textdatei geschrieben.

    -> Wie schon beim 2. Punkt gesagt, musst du eine zweite PHP-Datei erstellen, da php-scripts nur einmal ausgeführt werden, wenn der Benutzer die Seite aufruft, sie können nicht auf User-Eingaben reagieren, dazu verwendet man üblicher weise CSS und JavaScript.

    Auf der zweiten Seite kannst du in PHP die Variable $_POST['textfeld'] verwenden, in dieser ist der eingegebene Text gespeichert.

    Da es ja zur Übung ist, sollten obige Hinweise reichen.
    Bei weiteren Problemen kannst du dich natürlich noch einmal melden.

    lg
  4. Autor dieses Themas

    ccenter

    ccenter hat kostenlosen Webspace.

    Vielen Dank für die Hilfe und die gute Erklärung.
    Wenn ich allerdings keine neue Seite aufrufen möchte sondern auf der Seite bleiben will, was wäre dafür nötig?
    Per Javascript kann man, soweit ich das bei Google finden konnte, keine .txt erstellen.

    Ist es nicht möglich von dem onClick auf eine PHP-Funktion zu verweisen die den Text aus der Textbox ausliest und in eine Datei schreibt?

    Soetwas wie:

    <form action="index.php">
    
        <textarea cols="20" rows="4" name="textfeld"></textarea>
        <input type="button" name="btn1" value="Text Speichern"
          onclick="PHPMethod">
    
    </form>
    
    
    <php PHPMethod
    $datei = fopen("saved.txt", "a");
    fwrite($datei,  this.form.textfeld.value);
    fclose($datei);
    ?>


    Sorry für die dämlichen Fragen aber Webprogrammierung ist Neuland für mich.
  5. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Wenn du auf der gleichen Seite bleiben möchtest, kannst du das entweder unsauber mit einem Seitenaufruf in einem iframe machen, was allerdings sehr unsauber ist und nicht gerne gesehen wird.
    Oder du machst es mit einem AJAX-Aufruf.
    hierzu kannst du dir folgende Seiten durchlesen:
    http://www.oreilly.de/artikel/ajax1/index.html
    (Navigation ist ziemlich versteckt ganz unten)

    AJAX ist zusammengefasst:
    Mit Javascript wird im Hintergrund eine andere Seite aufgerufen.
    Mit dem .onreadystatechange und .readyState kann der Status der Seite abgerufen werden.
    Anschließend kann mit .responseText die Ausgabe der Seite abgefangen und mit JavaScript weiter verwaltet werden.
  6. Autor dieses Themas

    ccenter

    ccenter hat kostenlosen Webspace.

    Danke, ich werde mir Ajax mal anschauen.
    Bezüglich des iFrame: Hast du dazu auch noch einen empfehlenswerten Link? Wieso wird das nicht gerne gesehn, einfach weils unsauber ist?
  7. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Im allgemeinen sind (i)frames nicht mehr gerne gesehen, da man dies heutzutage mit divs erledigt.
    Für Iframes müsstest du einfach ein solches in deinem Code erstellen (display auf none), diesem frame einen Namen geben und dann kannst du mit target="FRAMENAME" Verweise in diesem Frame öffnen.

    Aber wie gesagt, es ist einfacher und auch ohne JS verfügbar, aber nicht mehr modern und unbeliebt.

    Einen Link habe ich dafür jetzt nicht parat.

    lg
  8. Nebst all den Fehlern wage ich zu behaupten, dass das Verzeichnis den entsprechenden chmod nicht besitzt, bzw. die Datei.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!