![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Formulare verstehen und auswerten
Dieses Tutorial befasst sich mit der einfachen Auswertung von Formularen jeglicher Art. Es wird kurz erklärt wie ein Formular aussieht und welche Möglichkeiten es gibt. Ziel ist es, Wissen über Formulare und deren Arbeitsweise zu vermitteln sowie anhand einfacher Beispiele den Umgang mit Formularen zu zeigen. Kapitel: Geändert von Jann Hendrik (09.01.2008 um 13:46 Uhr). |
|
|
|
|
|
Nach oben #2 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
1. Einführung
Kaum eine Internetseite kommt heutzutage ohne Formulare aus. Sei es um es dem Besucher zu erlauben Kontakt mit dem Webmaster aufzunehmen oder einen Account bei dem Anbieter einer Dienstleistung zu erstellen. Die Verwendungsmöglichkeiten sind vielfältig. Ein Formular selbst ist nichts weiter als eine Definition eines Bereichs, in der verschiedenste Elemente wie Buttons oder Eingabefelder auf Wunsch ausgewertet werden können. Formulare dienen daher der Interaktion einer Webseite mit dem Besucher. Stellen wir uns einfach mal folgendes vor: Ihr habt eine eigene Homepage und wollt dort regelmäßig über euer Leben berichten. Dazu habt ihr euch einen Bereich erstellt, in dem ihr Texte beliebiger Länge veröffentlichen wollt. Bisher habt ihr nur einen Eintrag, den ihr direkt im HTML-Code geschrieben habt. Das mag für den Anfang noch gehen, aber stellt euch die Seite eines Nachrichtendienstes vor. Dort müsste dann jeder Redakteur, der etwas veröffentlichen will, gute Kenntnisse in HTML haben um dies zu tun. Dazu kommt das Problem, mit den alten Nachrichten. Löschen geht nicht, da die Einträge sonst verloren wären und Archivieren ist sehr umständlich. Die Lösung dafür ist einfach: Über ein Formular und den dazu passenden Elementen kann jeder Redakteur schnell und leicht seinen Beitrag abschicken und dieser wird dann gespeichert und auf der Seite angezeigt. Wie das geht würde hier zu weit führen, weshalb wir uns erstmal nur mit der Auswertung der Formulare beschäftigen. Schauen wir uns also als nächstes an, wie ein Formular erstellt wird. Geändert von WarrenFaith (21.03.2006 um 17:34 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
2. Übertragungsmethoden POST und GET
Formulare nutzen eine von zwei Übertragungsmethoden: POST oder GET. POST: Übergabe der Daten im Header ohne Ausgabe in der URL GET: Übergabe der Daten im Header mit Ausgabe in der URL Die mittels GET in die URL eingetragenen Variablen und ihre Werte sind sehr leicht als solche erkennbar und haben folgendes Aufbaumuster: Code:
[Identifier][Variablenname]=[Wert der Variable] Nehmen wir zuerst eine einfache URL: http://www.domain.de/index.php Die erste Variable $var1 mit dem Wert "wert1" würde an die URL gehängt so aussehen: Code:
http://www.domain.de/index.php?var1=wert1 Mit 2 Variablen in der URL könnte dann so aussehen: Code:
http://www.domain.de/index.php?var1=wert1&var2=wert2 Kritische Daten wie beim Login (z.B. das Password) sollten daher nicht mit GET, sondern mit POST übertragen werden, da die URL verständlicherweise leicht veränderbar ist. Nur wenn es ausdrücklich erwünscht ist, dass Variablen über die URL verfügbar sind (z.B. bei Suchmaschinenergebnissen, Webshopsartikeln), sollte man auf die GET-Methode zurückgreifen. Ansonsten ist die POST-Methode zu bevorzugen. Ein weiterer wichtiger Punkt für Formulare ist die PHP-Einstellung in der php.ini betreffend register_globals. Was das ist und was es bewirkt kann hier nachgelesen werden. Weiterführende Hinweise sind dem Tutorial von Jann Hendrik zu entnehmen. Geändert von Jann Hendrik (09.01.2008 um 13:47 Uhr). |
|
|
|
|
|
Nach oben #4 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
3. Erstellen eines Formulars
Nun beginnt endlich der praktische Teil. Wie ist also ein Formular aufgebaut? HTML besitzt ein Formulartag namens <form> welches die für uns 2 wichtigsten Attribute "method" und "action" hat. Anhand der Attributnamen ist erkenntbar, dass bei "method" nach POST oder GET verlangt wird und bei "action" die gewünschte Aktion angeben werden muss. Ein kleines Beispiel: HTML-Code:
<form action="index.php" method="GET"> </form> HTML-Code:
<form action="index.php" method="GET"> <input name="sendebutton" type="submit" value="Senden"/> </form> HTML-Code:
<form action="index.php" method="GET"> Textfeld: <input name="textfeld" type="text" value=""/><br/> Passwordfeld: <input name="passwordfeld" type="password" value=""/><br/> Textarea: <textarea name="textarea" rows="5" span="5"/>Dass is'n Textarea</textarea><br/> Dropdown: <select name="dropdown" size="1"> <option value="1">Auswahl 1</option> <option value="2">Auswahl 2</option> <option value="3">Auswahl 3</option> </select><br/> Radiobutton:<br/> <input type="radio" name="radiobutton" value="1"/> Radio1<br/> <input type="radio" name="radiobutton" value="2"/> Radio2<br/> <input type="radio" name="radiobutton" value="3"/> Radio3<br/> Checkbox:<br/> <input type="checkbox" name="checkbox1" value="1"/> Checkbox 1<br/> <input type="checkbox" name="checkbox2" value="2"/> Checkbox 2<br/> <input type="checkbox" name="checkbox3" value="3"/> Checkbox 3<br/> <input name="reset" type="reset" value="Reset"/> <input name="senden" type="submit" value="Senden"/> </form> Code:
http://www.domain.de/index.php?textfeld=Textfeld&passwordfeld=Passwordfeld&textarea=Dies+ist+ein+Textarea&dropdown=2&radiobutton=3&checkbox1=1&senden=Senden Geändert von WarrenFaith (22.03.2006 um 09:23 Uhr). |
|
|
|
|
|
Nach oben #5 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
4. Abrufen der Formulardaten
Nachdem wir nun gelernt haben, wie ein Formular aufgebaut sein könnte und wie Methoden POST und GET funktionieren, können wir das ganze auch praktisch testen. Dazu verwenden wir erstmal folgendes Formular: HTML-Code:
<form action="index.php" method="POST"> Bitte geben Sie ihre Daten ein:<br/> Name: <input name="name" type="text" value="" size="15"/><br/> Vorname: <input name="vorname" type="text" value="" size="15"/><br/> Straße / Nr: <input name="strasse" type="text" value="" size="15"/> <input name="nr" type="text" value="" size="3"/><br/> PLZ / Ort: <input name="plz" type="text" value="" size="5"/> <input name="ort" type="text" value="" size="15"/><br/> Telefon: <input name="telefon" type="text" value="" size="15"/><br/> <input name="senden" type="submit" value="Senden"/> </form> Die Seite läd neu und das Formular ist wieder leer. Das ist natürlich nicht das, was wir wollen. Wie können wir also auf die Daten zugreifen? Ganz einfach: Je nach Übertragungsmethode werden die Daten entweder in das Array $_POST oder in das Array $_GET geschrieben. Damit können wir dann beliebig arbeiten. In unserem Beispiel ist die Methode POST benutzt worden, weshalb wir uns einfach mal das Array $_POST ausgeben lassen wollen, natürlich nur, wenn dieses Array auch existiert: PHP-Code:
Code:
Array
(
[name] => Faith
[vorname] => Warren
[strasse] => Superstraße
[nr] => 007
[plz] => 12345
[ort] => Berlin
[telefon] => 030 / 1234567
[senden] => Senden
)
Nachfolgend zwei kleine Beispiele: Die Ausgabe der Formulardaten in einem Textbeispiel: PHP-Code:
Code:
Sie heißen Warren Faith und sind männlich. Sie sind amtlich wohnhaft gemeldet in der Superstraße 007 in 12345 Berlin im Bundesland Berlin. Sie sind telefonisch erreichbar unter 030 / 1234567. PHP-Code:
Geändert von WarrenFaith (22.03.2006 um 11:05 Uhr). |
|
|
|
|
|
Nach oben #6 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
5. Fazit
Trotz der Arbeit mit der POST-Methode müssen aus Gründen der Sicherheit alle Eingaben vor der Verarbeitung geprüft werden. Weiterführende Tutorials wären: [php] Sichere PHP-Web-Applikationen schreiben [php] Eingabeüberprüfung eines Formulars [php] Wie übergebe ich Daten per URL? [php] Dynamisches Füllen einer SELECT-Liste Geändert von Jann Hendrik (26.05.2007 um 10:05 Uhr). |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Schwachstelle durch Formulare zum Datei-Upload und JavaScript in diversen Browsern | robo47 | Nachrichten | 9 | 08.06.2006 19:33 |
| [PHP] FTP-Funktionen in PHP nutzen | MrNiceGuy | Tutorials | 0 | 24.05.2006 14:18 |
| Formulare anderer Webseiten ausfüllen | Gast | PHP-Programmierung | 5 | 09.04.2006 14:04 |