SmileMan's Blogger

19Nov/110

Formulare verarbeiten

Formulare verarbeiten

 Formulare

Formulare bieten Anwendern die Möglichkeit Text in ein oder mehrzeiligen Eingabefeldern (Textfeldern) einzugeben und  Einträge aus einer Auswahlliste auszuwählen.
Außerdem bietet ein Formular die Möglichkeit die eingegebenen Daten an ein Programm zur Weiterverarbeitung zu schicken.
Webformulare dienen verschiedenen Anwendungszwecken:

  • Kontaktformular
  • Umfragen
  • Anmeldeformulare
  • Bestellformulare
  • usw.

Mit den dem Tag <form> ... </form> werden Formulare definiert und alles was zwischen den beiden Tags steht gehört zum Formular. Im  <form> gibt es ein Pflichtattribut action das angibt, was mit dem Webformular zu tun ist, nachdem der  Benutzer das Formular abgeschickt hat.  Das Attribut method gibt an, wie die Übergabe der Daten zu erfolgen hat. Wählt man als Methode "get" werden die Daten hinter der URL der aufgerufenen Seite angehängt. "post" verschickt die Daten des Formulars über den Standardeingabekanals des Web-Servers. Die Post-Methode ist zum einen sicherer, da die Daten nicht für die Nutzer der Webseite sichtbar sind, andererseits eignet sich diese Methode besonders dann, wenn viele Parameter zu übertragen sind.

Am besten lässte sich dies an einem konkreten Beispiel demonstrieren: Wir erstellen ein einfaches Formular das den Vornamen, Nachnamen, das Alter und das Geschlecht einer Person erfrägt und dann entsprechend dem Alter und dem Geschlecht eine passende Begrüßung schreibt. Der folgende HTML-Code stellt ein solches Formular dar:

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Werte aus Formularen</title>
</head>
<body>
<h2>Anmeldeformular:</h2>
<FORM action="willkommen.php" method="post">
<P>
Vorname:  <INPUT type="text" name="firstname"><BR>
Nachname: <INPUT type="text" name="lastname"><BR>
<LABEL for="email">Alter: </LABEL>
<INPUT type="text" name="age"><BR>
<INPUT type="radio" name="sex" value="male">männlich<BR>
<INPUT type="radio" name="sex" value="female">weiblich<BR>
<INPUT type="submit" value="Absenden"> <INPUT type="reset">
</P>
</FORM><br>
</body>
</html>

Ansicht des obigen HTML-Codes:

Anmeldeformular:

Vorname:
Nachname:

männlich

weiblich

Wenn man den "Absenden"-Knopf drückt, wird das Programm willkommen.php, oder genauer in unserem Fall die URL http://www.problem-hilfe.de/linux/beispiele/willkommen.php aufgerufen.

Das PHP-Skript willkommen.php haben wir auch bewusst einfach gehalten, damit das Prinzip besser ersichtlich wird:

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Willkommen</title>
</head>
<body>
<h1>Willkommen</h1>
<br>
Hallo
<?
/*
echo $_POST["firstname"];
echo $_POST['sex'];
echo $_POST['lastname'];
*/
if  ( $_POST['age'] < 16 ) {
echo $_POST['firstname'];
} elseif ( $_POST['sex'] == "male") {
echo " Herr " . $_POST['lastname'];
} else {
echo " Frau " . $_POST['lastname'];
}

?>
<br>

</body>
</html>

Auf die Variablen des Formulars kann man in willkommen.php nicht direkt zugreifen, aber sie stehen in einem Array $_post. Der Zugriff erfolgt assoziativ über den Variablennamen. Also die Variable "firstname" des Formulars kann mit $_post["firstname"] angesprochen werden.

In Datei schreiben

Will man den gesamten Inhalt des $_POST-Arrays in eine Datei schreiben, so ist dies auch kein Problem. Wir benutzen dazu die in Datei schreiben von vorgestellte Funktion write_data().
Obiges Skript sieht dann wie folgt aus:

<?
function write_data($data, $fname) {
$fp = fopen($fname, "w");

foreach ($data as $key => $value) {
// echo "$key: $value\n";
fwrite($fp, "$key: $value\n");
}

fclose($fp);
}
?>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Willkommen</title>
</head>
<body>
<h1>Willkommen</h1>
<br>
Hallo
<?

if  ( $_POST['age'] < 16 ) {
echo $_POST['firstname'];
} elseif ( $_POST['sex'] == "male") {
echo " Herr " . $_POST['lastname'];
} else {
echo " Frau " . $_POST['lastname'];
}
$res = write_data($_POST,"post.txt");
if ($res) {
echo "<br>\nEs gab Probleme beim Speichern!";
} else {
echo "<br>\nDaten des Formulars wurden in post.txt gespeichert!";
}

?>
<br>

</body>
</html>

EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

veröffentlicht unter: PHP Kommentar schreiben
Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

Noch keine Trackbacks.