Variablen an ein Formular übergeben
Sie befinden sich: Home > Php
> Variablen an ein Formular übergeben
In diesen Artikel
möchten wir ihnen erklären, wie sie ein
Formular erstellen und die Daten entgegen nehmen.
Es wird hierbei auf die Übertragungsmethode GET
und
POST
eingegangen.
Als erstes benötigen
wir ein Formular, dieses Formular wird nach den
Ausfüllen und absenden an ein PHP Scripte gesendet.
somit erreichen wir die Übergabe von Daten an
ein Formular. Es gibt hierbei zwei unterschiedliche Übertragungsmethoden.
Es wäre einmal die Übertragungsmethode
GET, diese
Übertragungsmethode übermittelt die Daten über
eine Adresse. Die andere Übertragungsmethode
heißt
POST und
wird unsichtbar direkt an das Php Script gesendet.
Nachdem wir nun erklärt haben was
GET und POST ist, geht es an das Eingemachte
und wir erstellen erstmal ein Formular für die Übertragungsmethode
GET.
Die Übertragungsmethode
GET
Der Datei geben wir den Namen: mein_erstes_get_formular_step1.php
<form action = "mein_erstes_get_formular_step2.php" method = "get" >
Das ist die Variable, die wir an das Script übergeben wollen:
<input type = "text" value = "" name = "variablen_name" />< br />
<input type = "submit" value = "Formular absenden" name = "senden" />
</form >
In diesem einfachen Formular verwenden wir die Übertragungsmethode
GET. Um anzugeben welche Übertragungsmethode wir
in dem Formular verwenden, muss man im <form>
Tag angeben method="get". Somit weiß ihr
Browser, dass er das Formular per GET zu übermitteln
hat. Die Übertragungsmethode GET wird sehr häufig
verwendet, um einzelne Daten zu übermitteln.
Wie zum Beispiel beim Aufrufen einer Kategorie in
einem Verzeichnis.
Wenn wir das Formular nun absenden, wird an ihrer
Adresse nach dem absenden die Variable angehangen.
Dies würde so aussehen in der Adressleiste,
Ihres Browsers: mein_erstes_get_formular_step2.php?variablen_name=&senden=Formular%20absenden
wenn sie keine Daten in das Formular eingeben und
das Formular über dem Button "Formular
absenden"
absenden. man könnte jetzt als Außenstehender,
die Adresse in der Adressleiste editieren und falsche
Daten ganz einfach an das Script senden. Es besteht
genauso eine Einschränkung, dass hier nur eine
bestimmte Länge an das Script in der Adressleiste übermittelt
werden kann. Merken Sie sich: Daher sollte man,
auf die unsicheren Übertragungsmethode GET verzichten.
Natürlich ist dies nicht immer möglich
und man muss auf die Übertragungsmethode GET
zurückgreifen.
So nun wollen wir, die Variablen, die wir an das
Script gesendet haben ausgeben. Dazu müssen
wir zum Beispiel einfach echo $_GET['variablen_name'];
schreiben. Mit der Echo Anweisung geben wir einen
Inhalt aus, wenn dieser in einer Variable
gespeichert wurde. Das ausgeben von Texten beziehungsweise
Variablen haben wir bereits in einen anderen Artikel
ausführlich
beleuchtet. Wenn sie dies nicht verstanden haben,
können Sie hier nochmal
den Artikel nachlesen. Man sollte bevor man die
Variable ausgibt, prüfen ob ein Inhalt
in der variabel vorhanden ist. Da ansonsten wir eine
Php Fehlermeldung generieren. Das Beispiel für die
Überprüfung der Variablen:
Der Datei geben wir den Namen: mein_erstes_get_formular_step2.php
<?php
/* Als erstes überprüfen wir die Variable, ob
dieser eine Wert haben. Sollte kein Wert in
der Variable abgelegt sein, weisen wir einen
Null Wert zu. Damit wir die Fehlermeldung nicht
bekommen, dass eine Variable nicht definiert ist.
Sollte der Variable einen Wert übergebenwerden,
dekodieren wir den Inhalt der Variable. Das
dekodieren sollte man auf jeden Fall machen, da
man sonst bei Umlauten zum Beispiel für das
Leerzeichen ein unschönes %20 in der Variable
gespeichert hat. Das Dekodieren eine Adresse
macht man mit urldecode(); */
if (!isset($_GET['variablen_name'])) {
$_GET['variablen_name'] = '';
} else {
$_GET['variablen_name'] = urldecode( $_GET['variablen_name']);
}
if (!isset($_GET['senden'])) {
$_GET['senden'] = '';
} else {
$_GET['senden'] = urldecode( $_GET['senden']);
}
/* Nachdem wir nun überprüft haben ob ein
Wert der Variable zugewiesen ist, können wir
mit dieser Variable weiter arbeiten. Nun prüfen
wir die Variable auf einen Inhalt. Wenn die
Variabel einen Inhalt hat, geben wir diese Variabel
wieder aus. Bevor wir die Variabel ausgeben,
sollten wir alle Sonderzeichen die übermittelt
wurden in HTML Code umwandeln. Dies macht
man mit htmlspecialchars(); */
if ($_GET['senden'] != '' AND $_GET['variablen_name'] != '') {
echo htmlspecialchars( $_GET['variablen_name']);
}
?>
Die Übertragungsmethode
POST
Jetzt haben wir ausführlich die Übertragungsmethode
GET beschrieben und wollen natürlich auch auf die
Übertragungsmethode POST eingehen. Als erstes benötigen
wir wieder ein Formular, in diesem Formular geben
bei den <form>
Tag die method="post" an. Das Beispiel
hierfür würde so aussehen:
Der Datei geben wir den Namen: mein_erstes_post_formular_step1.php
<form action = "mein_erstes_post_formular_step2.php" method = "post" >
Das ist die Variable, die wir an das Script übergeben wollen:
<input type = "text" value = "" name = "variablen_name" />< br />
<input type = "submit" value = "Formular absenden" name = "senden" />
</form >
Wenn wir dieses Formular absenden, wird an die Adressleiste
nichts angehangen. Somit ist es schwerer das Script,
was aufgerufen wird zu manipulieren. Natürlich ist
dies nicht unmöglich, aber eine bedeutend sicherer
Übertragungsmethode als wie die GET Variante. Das
Script was die Daten entgegennimmt würde so aussehen:
<?php
/* Da
die Daten, nicht über die Adressleiste
übermittelt
wurden, ist es nicht erforderlich
mit
urldecode()
umzuwandeln. */
if (!isset($_POST['variablen_name'])) {
$_POST['variablen_name'] = '';
}
if (!isset($_POST['senden'])) {
$_POST['senden'] = '';
}
/* Nachdem wir nun überprüft haben ob ein
Wert der Variable zugewiesen ist, können wir
mit dieser Variable weiter arbeiten. Nun prüfen
wir die Variable auf einen Inhalt. Wenn die
Variabel einen Inhalt hat, geben wir diese Variabel
wieder aus. Bei
der Übertragungsmethode POST ist es
genauso
wichtig, alle Sonderzeichen die übermittelt
wurden in HTML Code umgewandelt
werden. Dies macht
man mit htmlspecialchars(); */
if ($_POST['senden'] != '' AND $_POST['variablen_name'] != '') {
echo htmlspecialchars( $_POST['variablen_name']);
}
?>
Sie sehen selber, dass es ein paar Unterschiede
zwischen den Übertragungsmethode GET und POST gibt.
Man kann natürlich auch mit so genannten globalen
Variablen arbeiten. Eine globale Variable ist zum
Beispiel $variablen_name und dieser wird bei beiden
Übertragungsmethode befüllt mit dem Inhalt wie in
$_POST['variablen_name'] oder
$_GET['variablen_name']. Dazu muss aber die PHP Einstellung register_global auf
"on" stehen.
Da dies ein Sicherheitsproblem ist,
ist bei dem meisten Webhostern diese Einstellung
auf "off" gestellt. Wenn dies nicht der Fall ist,
sollte man dem Webhoster darum bitten, dies zu ändern.
Hinweis: Gewöhnen sie sich auf keinen Fall an,
mit globalen Variablen in ihrem Scripten zu arbeiten.
Denn da dies ein Sicherheitsproblem ist und bei
verschiedenem Webhoster einfach
nicht funktionieren.
weiter E-Mail
mit Php versenden
|