PHP - Variablen an ein Formular übergeben

Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Partner
Sprüche Treff

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
http://www.Artfiles.de
Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.de
 
 

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