faecher:informatik:oberstufe:php:eingabe:start

Dies ist eine alte Version des Dokuments!


Eingabe mit Formularen

In HTML-Seiten kann man umfangreiche Formulare einbetten, um Benutzereingaben zu erfassen. Ein detailliertes Tutorial, das viele Aspekte abdeckt, findest du bei SelfHtml.

Daten mit ''GET'' und ''POST'' empfangen

Um die mit einem Formular versandten Daten mit PHP auszuwerten, muss man wissen, dass PHP bereits eine Infrastruktur zum Empfang solcher Daten bereitstellt. Da Browser gegenwärtig Formulardaten nur mit den HTTP-Methoden GET und POST versenden, finden sich in PHP so empfangene Daten in den superglobalen Variablen $_GET und $_POST. In diesen Variablen sind die Schlüssel-Wert-Paare in Form eines assoziativen Arrays abgelegt.

In "normalen" Arrays sind die Schlüssel Ganzzahlen, in PHP können die Schlüssel von Arrays auch alphanumerisch, also (fast!) beliebige Strings, sein. Arrays in PHP, bei denen die Schlüssel nicht nur aus Ganzzahlen bestehen, werden assoziative Arrays genannt.

Das name Attribut in einem HTML Formular erzeugt also bei der Übergabe an ein PHP-Programm automatisch eine spezielle Variable. Auf diese Weise kann man Daten an PHP Programme übergeben:

Das folgende Formular ruft beim Klick auf Sumbit das PHP Skript skript.php auf.

 <form action="skript.php" method="post">
     <input type="text" name="vorname" />
     <input type="submit" value="senden" />
  </form>

Für das Texteingabefeld "vorname" wird bei der Übergabe die Variable $_POST['vorname'] erzeugt. Schreibt man als Methode im Formular method="get", wird stattdessen die Variable $_GET['vorname'] erzeugt. In beiden Fällen enthält diese Variable den Wert des Formularfelds, welches dieses zum Zeitpunkt des Submits enthalten hat.

<?php
echo $_POST['vorname'];
 
?>

(A1)

Eine einfache Vorlage mit 2 Dateien findest du hier. Installiere die Dateien auf deinem Webspace und teste die Eingabe über das Formular.

  • faecher/informatik/oberstufe/php/eingabe/start.1619443264.txt.gz
  • Zuletzt geändert: 26.04.2021 15:21
  • von sbel