PHP: Value einer Form in einer Txtfile abspeichern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
bekommen
button
byte
code
datei
datum
eingegebene inhalt
ende
erstellen
fehler
http
inhalt
laufen
pfad
struktur
text
textdatei
url
vorherigen inhalt
-
Moin moin,
ich beschäftige mich in letzter Zeit ein wenig mit PHP und bin auf eine Sackgasse gestoßen - ich knoble schon seit Tagen daran und komme nicht ganz voran, deswegen dachte ich, dass ich in diesem kompetenten Forum einfach mal nachfrage (ist ja nichts wofür man sich schämen sollte oder? ;) )
Wie der aussagekräftige Titel schon sagt, möchte ich folgendes:
Ich habe ein Formular (momentan noch ziemlich simpel gehalten zu Übungszwecken), sie besteht aus einem Button (Submit) und einer Textbox (so nenne ich das mal als ehemaliger VB Coder)
Ich möchte, dass der eingegebene Inhalt abgespeichert wird (nachdem der Submit Button betätigt ist) in einer separaten Textfile, welche erstellt und gefüllt wird mit dem Inhalt des Formulares AUF DEM SERVER!
Ich habe schon diverse Codesnippets gehabt, ausprobiert und umfunktioniert und trotzdem will es nicht klappen. Es scheitert daran, dass keine Textdatei erstellt wird. Die Variable wird sonst korrekt angezeigt, das Script zeigt keine Fehlermeldungen usw usf.
Momentan habe ich das Script eher verworfen und wollte einen kompletten Neuanfang machen, deswegen frage ich hier. Ansonsten könnte cih die alte Version von vorn rauskramen und wir können uns zusammensetzen um eine gemeinsame Lösung zu finden :)
Oder kann es vielleicht sein, dass Lima aus irgendwelchen Gründen PHP Dateien nicht erlaubt, txtfiles zu erstellen??? Wäre ein wenig abwegig aber wer weiß, ich vermute vieleher einen Codingfehler!
Wäre absolut großartig wenn mir einer von euch erfahrenen Coder unter die Arme greifne würde.
Vielen Dank schon mal im vorraus,
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi
Lima-City erlaubt natürlich das erstellen von Textfiles.
Da ich deinen Code nicht verbessern kann, da ich ihn nicht habe, erstelle ich einfach mal ein schnelles Beispiel:
HTML-Datei:
<form action="action.php" method="POST"> <textarea name="text"></textarea> <input type="submit" value="Speichern"> </form>
PHP-Datei:
<?php $text=_POST["text"]; //Inhalt wird über POST übertragen $datei = fopen("pfad/zur/datei.txt","w"); //Datei wird mit direkten Dateipfad //von der PHP-Datei aus gesehen geöffnet //bzw. erstellt fwrite($datei, $text); //Der Inhalt wird geschrieben fclose($datei); //Die Datei wird wieder geschlossen ?>
Mehr Informationen gibts hier (wo ich übrigens PHP selbst gelernt habe): http://php-einfach.de/php-tutorial/php-dateien.php
Hoffe, ich konnte dir helfen, squid
Beitrag zuletzt geändert: 10.2.2011 17:40:35 von squid -
hi,
vielen dank für deine hilfe aber aus irgendeinem Grund wird trotzdem keine Txtdatei erstellt!
Ich habe selbst die Textdatei erstellt un dsie leer hochgeladen weil ihc dachte dass dann etwas passieren würde - Fehlanzeige!
Habe die dateien genau so abgespeichert wie sie heißen sollen, im richtigen ordner, dann mit dem Speicherort der Textdatei gespielt, die Schreibrechte des Ordners auf 777 gesetzt und trotzdem will es nicht funktionieren (selbiges problem hatte ich auhc mit dem anderen Script)
Was genau kann da schiuef laufen?! -
Hiho,
ich habe das Skript von squid ausprobiert und es funktioniert sofort, ohne irgendwelche Rechte ändern zu müssen, solltest du das Skript auch übernommen haben, musst du diese Zeile
$text=_POST["text"]; // zu $text = $_POST["text"]; // ändern
Ansonsten musst du wohl anfangen den Fehler einzudämmen, Pfade überprüfen und if Abfragen einbauen um Fehler abzufangen.
Zum Beispiel:
<?php if(is_string($_POST['text'])) { $text = $_POST['text']; $datei = fopen('datei.txt', 'w'); if(!is_resource($datei)) { exit('Filehandle wurde nicht erzeugt' . PHP_EOL); } if(!fwrite($datei, $text)) { exit('Daten konnten nicht geschrieben werden' . PHP_EOL); } fclose($datei); } ?> <form action="dieses_skript.php" method="post"> <textarea name="text"></textarea> <input type="submit" value="Speichern"> </form>
-
Genial, ich wusste doch das ich hier richtig bin :D Ihc werd das gleich mal ausprobieren und schauen was für ein Ergebnis ich bekommen werde :)
Ganz großes Dankeschön, funktioniert zieemlich gut! Das einzige Problem ist, dass ich möchte, dass die vorherige Textdatie nich überschrieben wird!
Ah da fällt mir ein, hier wurde ja ein Script mit dateiname und increment gepostet (oder war das grad wo anders und ich verwechsel das?) Ich schau mir mal den Thread heir an und versuche den Code selbst hinzukriegen ;)
Ich halte euch auf den Laufenden :)
edit -- hab den source gefunden aber das kriege ich leider nicht zum laufen. Gibt es eine andere Möglichkeit um in die bestehende Datei reinzuschreiben ohne den vorherigen Inhalt zu löschen / ersetzen?? :(
Beitrag zuletzt geändert: 11.2.2011 1:19:21 von pouya -
Hiho. Na klar.
Dazu musst du fopen die Datei in einem anderen Modus öffnen lassen.
'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
'r+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
'w' Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
'w+' Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a' Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a+' Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
Die Datei öffnen um Daten am Ende anzuhängen funktioniert also folgendermaßen:
$file = fopen('foobar.txt', 'a');
Um ein bisschen Struktur in die Datei zu bekommen, kannst du primitive Zeilenumbrüche beim schreiben an das Ende der Daten anhängen.
fwrite($datei, $text . PHP_EOL)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage