Auswertung von Formularen mit einer PHP-Datei



Was noch zu erklären bleibt sind die Attribute in der Klammer des FORM-Tags:

  1. action
    Durch seinen Wert wird festgelegt, welches Programm auf dem Server im Web die Formulardaten weiterverarbeitet

  2. method
    Durch seinen Wert (post oder get) wird die Methode des Verschickens der Daten bestimmt (bei get werden die Daten an die Internetadresse angehängt, bei post werden nur die unverschlüsselten Daten verschickt).

  3. enctype
    Bestimmt die Verschlüsselungsart (z.B. text/plain, text/html ....)


So - und jetzt kommt PHP ins Spiel: Dem Attribut action im FORM-Tag geben wir den Wert "auswertung.php"!

  1. Wir ergänzen in der Datei loes_01.html unser Formular:
  2. Ins FORM-Tag schreiben wir : action="auswertung.php"
  3. Ins FORM-Tag schreiben wir : method="post"
  4. Ins FORM-Tag schreiben wir : enctype="text/plain"
  5. Das Namensfeld aus dem INPUT-Textfeld für den Vornamen wird mit name="vorname" ergänzt
  6. Das Namensfeld aus dem INPUT-Textfeld für den Zunamen wird mit name="zuname" ergänzt
Geben wir nun Daten ein und klicken auf den Abschickknopf, dann geschieht jedoch nichts. Na klar, es gibt ja auch noch keine Datei mit dem Namen "auswertung.php"!

Also ein neues HTML-Dokument im Editor erstellen mit allen Tags und speichern unter dem Namen "auswertung.php", NICHT "auswertung.html" !!!!!!!! Dorthin schreibst du:



Was ist neu?

  1. Wir sehen am Beispiel, wie man PHP-Code ins HTML-Dokument einbindet.
  2. Mit dem Befehl echo wird Text ausgegeben.
  3. Der Text hinter echo wird in Gänsefüßchen eingeschlossen.
  4. Programmzeilen werden mit einem Semikolon abgeschlossen.
  5. Das Attribut name, das den Wert vorname hatte, wurde von unsrer Datei auswertung.php als Variable übernommen.
  6. Variablennamen beginnen mit einem Dollarzeichen.


So, und wenn wir nun unsre HTML-Datei "loes_01.html" öffen, das Formular ausfüllen, die Daten abschicken, dann ....... geschieht NICHTS!!!

FRUST !!!!

Tja, also ein paar Infos braucht der Mensch.

Im Gegensatz zu JavaScript oder Java, deren Befehle von Browser (InternetExplorer, Netscape, Opera, .... ) interpretiert werden, werden die Befehle von PHP nur von einem Webserver interpretiert, dieser schickt dann den HTML-Code an den Browser. Wenn man sich jedoch den Seitenquelltext ansieht, ist von PHP-Code nichts mehr zu sehen!

Was machen wir, wenn wir offline unsere Arbeit testen wollen? Wir müssen einen Webserver auf unserem privaten Rechner installieren: FOXSERV o. ä.

Nehmen wir mal an, wir haben das erledigt. Mit dem Dateimananger sieht man nun das Verzeichis "foxserv", klicke dort doppelt auf "foxserv.exe". Du siehst nun das Kontrollmenü unseres privaten Webservers.



Klicke nun auf "Start Apache". Es öffnet ein DOS-Fenster, das du verkleinern kannst, jedoch nicht schließen!

Wir machen einen 2. Versuch: Browser schließen und neu öffnen, loes_01.html öffnen, Formular ausfüllen, Daten abschicken: Immer noch nichts!

FRUST !!!!

  1. Wenn du mit dem Explorer die Verzeichnisstruktur Deiner Festplatte betrachtest, erkennst du, dass es ein Unterverzeichnis "www" von foxserv gibt. Dort machst du ein weiteres Unterverzeichnis phpkurs.


  2. Alle deine Dateien aus diesem Kurs kopierst du von deinem privaten Verzeichnis ins Unterverzeichnis www/phpkurs von foxserv.


  3. In die Adresszeile vom InternetExplorer schreibst du: "http://localhost/phpkurs/loes_01.html" und bestätigst. NICHT mit dem Dateimanager auf loes_01.html klicken. Es wird dann zwar diese Datei im Webbrowser geöffnet, aber PHP funktioniert nicht!


Nochmal Daten ins Formular, abschicken und ....

ERFOLG !!!!

Wenn nicht, dann Fehlersuche:

  1. vielleicht das Seimikolon vergessen?
  2. vielleicht biegt der Ordner "phpkurs" doch nicht von "www" ab?
  3. vielleicht "auswertung.php" falsch benannt?
  4. vielleicht "auswertung.php" falsch ins Formular eingetragen?
  5. vielleicht nur die falsche Adresszeile in den Browser getippt?
  6. vielleicht "post" statt "get" als Attribut von "action" im Formular-Tag gewählt? Obwohl für unsere Beispiele "post" der sinnvollere Wert für das Attribut "method" wäre, funktioniert unser erstes Programm nicht mit IExplorer 6.0, Netscape 7.0 akzeptiert dagegen auch "post"!


jetzt aber ERFOLG !!!!


Aufgabe 3

Bevor du anfängst: lies Info 1 durch!


Ergänze in deinem Formular in loes_01.html das NAME-Attribut in den Radio-Buttons durch den Wert "anrede".
Ergänze bei den beiden Radiobuttons: value="weiblich" bzw. value="maennlich"
Setze Kommentarzeichen um die alten php-Zeilen in der Datei "auswertung.php".

Schreibe nun ein php-Skript in die Datei "auswertung.php", das nach Eingabe der Daten ff. Text ausgibt:



Aufgabe 4

  1. Ein Eingabe-Feld für den Zunamen
  2. Ein Eingabe-Feld für die EMail-Adresse
  3. Ein Textfeld
  4. Entfernen der Radio-Buttons




Das Formular soll nun etwa so aussehen:



... und den folgenden Text ausgeben:



Aufgabe 5

Speichere loes_03.html als loes_04.html und loes_03.php als loes_04.php und trage beim action-Attribut den entsprechenden Wert ein.
Ergänze in der php-Datei die Zeilen und zwei horizontale Linien an geeigneter Stelle.



Teste nun die Datei: die Skript-Interpretation durch den WebServer muss nun bei der Ausgabe der Daten den Inhalt des HTML-Dokuments zeigen (die eingegebnen Daten müssen dabei automatisch gelöscht werden):



Aufgabe 6


Aufgabe 7

Weiter geht's mit loes_07.html und loes_07.php.
Wir bleiben noch etwas bei der Auswertung von Formularen: diesmal sollen zwei Zahlen addiert werden: (Mit dem include-Befehl sollen Formular und Ergebnis beide angezeigt werden.)




Aufgabe 8

Bei loes_08.html und loes_08.php soll die 7. Aufgabe so erweitert werden, dass die Benutzer/innen auch das Rechenzeichen wählen können:

  1. Erstelle zunächst mal ein geeignetes Formular und speichere es unter dem Namen loes_08.html, trage als Wert des action-Attributs "loes_08.php" ein.




  2. Versucht man eine Ergebnisausgabe mit den ff. php-Programmzeilen, dann wird nur die Rechenaufgabe erneut ausgegeben. Was wir nun brauchen, ist eine MEHRFACHABFRAGE!






  3. Lies nun Info 2
  4. Jetzt kannst du loes_08.php fertigstellen.


Aufgabe 9


... soll nochmal eine Mehrfachabfrage mit SWITCH enthalten. Erstelle loes_09.html und loes_09.php wie folgt:



Aufgabe 10

ist freiwillig: Hier geht es um Zufallszahlen, mit deren Hilfe ein Mini-Spiel "Zahlenraten" programmiert werden soll.
Informiere dich zunächst in Info 3 über die Verwendung von Zufallszahlen in PHP.



Aufgabe x - für eine Zusatznbote ??? ... oder auch einfach zum Spaß

Möglicherweise werden die Formularfelder nicht korrekt ausgefüllt, die Daten dennoch abgeschickt, es wird dann eine leere oder unvollständige HTML-Datei vom PHP-Interpreter auf dem WebServer erzeugt.

Zu diesem Zweck soll eine Abfrage eingebaut werden, mit der dies verhindert wird.





© 2010 Asti PoVRay-Site Mathematische Streiflichter