PHP: Einführung für Anfänger


* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba

PHP


© <a href="http://www.fotolia.de/p/29003">Ljupco Smokovski</a> - FOTOLIA
Home
PHP von der Kommandozeile
PHP und HTML im Zusammenspiel
Variablen und Zuweisungen
Arrays
Vergleichsoperatoren
Verzweigungen
Schleifen
Funktionen
Datei schreiben
Datei lesen
Formulare verarbeiten
Sortieren von Dateinamen
Anzeige:

PHP Kurse für
Anfänger und Fortgeschrittene

Kontakt
Haftung
Impressum
Problem Hilfe Startseite


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>




© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterstützung von Bodenseo, Linux-Kurse und Schulungen,
Foto linke Seite (Mann mit Strick und Colt): Foto: © Ljupco Smokovski, fotolia 984022