ich versuche PHP zu lernen und bin gerade beim Schreiben von Dateien mit PHP.
Dabei ist folgendes aufgetreten:
Ich möchte die Informationen, die über die Formularfunktion eingegeben wurden, in einer Textdatei speichern. Zum Beispiel den Vornamen, damit ich von anderen Seiten darauf zugreifen kann. Dies funktioniert aber nur, wenn ich im Tag „form“ bei dem Attribut ‚‚action‘‘ die gleiche Seite aufrufe. Dann wird eine evtl. nicht vorhandene Textdatei erstellt und die Eingabe darin gespeichert.
Das hier funktioniert. Die Seite ruft sich selber auf.
Wenn ich bei ‚‚action‘‘ als Ziel aber eine andere Seite eingebe, wird keine Textdatei erstellt. Sofern eine Textdatei schon besteht, wird darin nichts gespeichert.
Das hier funktioniert nicht. Bei „action“ wird eine andere Seite als Ziel eingegeben.
im ersten Beispiel wird der PHP-Code immer ausgeführt, egal ob die Seite zum ersten Mal via GET geladen wird oder das Formular per POST abgeschickt wird.
Bei dem Aufruf via GET ist Vorname natürlich leer und damit deine Datei auch.
Hallo und danke für deine Antwort.
Das ist mir jetzt nicht so ganz klar. Ich habe immer nur „post“ benutzt.
Nur wenn ich über „action“ eine neue Seite lade, dann funktioniert es nicht. Lade ich aber die gleiche Seite nochmal, dann werden die Informationen gespeichert.
@steve_m hat die Antwort schon gegeben, hier eine genauere Erläuterung:
Der PHP-Code wird nicht mit dem Submit ausgeführt (mit dem Submit wird nur die Action ausgeführt), sondern bereits beim Laden der Seite, somit wird die Datei beim ersten Beispiel erst beim 2. Aufruf geschrieben und dieser „fehlt“ beim zweiten Beispielt. Hier müsste das Schreiben der Datei dann im aufgerufenen PHP-Programm stehen, wo du den vorname mit $_POST[‚vorname‘] dann ansprichst und damit weiterarbeitest.
Ich sage es nur ungern, aber hier fehlen noch die Grundkenntnisse der (PHP-)Programmierung.
Wenn mir die Funktion erklärt wird verstehe ich das auch.
In diesem Fall müsste ich also die Seite mit dem Formular über den Sendebutton laden. Mit einer if-Abfrage könnte dann ein Link angezeigt werden, der auf die nächste Seite verweist.
Da gebe ich dir vollkommen recht. Aber ich mache das ja auch nicht beruflich, sondern in meiner Freizeit neben meinem Beruf. Aus diesem Grund lerne ich auch nur aus mehr oder eher weniger guten Büchern.
Ach ja, richtig schlechte Bücher über das Thema gibt es auch