25.04.19 5842 Views 4

credit: monsitj(stock.adobe.com)

PHP Tutorial #23

Zusätzliche Daten an Formularziel senden

Es gibt zwei Wege, wie wir zusätzliche Daten ohne Benutzereingabe an ein PHP-Programm senden können, indem wir versteckte Eingabefelder einbauen oder mit dem $_GET Array arbeiten. Diese sehr praktischen Möglichkeiten sehen wir uns nun etwas genauer an.

Download als eBook

Weg 1: Verstecktes Feld

<input type="hidden" name="unsichtbar" value="1234">

Weg 2: Daten an URL anhängen

<form action="zieldatei.php?variable1=value1&variable2=value2">

    Inhaltsverzeichnis

  1. Verstecktes Eingabefeld
  2. Daten an URL anhängen mit $_GET
  3. Übungen

Verstecktes Eingabefeld (input type = "hidden")

Ein verstecktes Eingabefeld ist im Formular mit <input type="hidden"> definiert, bleibt für den Benutzer aber unsichtbar und kann nicht bearbeitet werden. Somit können wir - unabhängig von der Eingabe des Nutzers - zusätzliche Daten an den Webserver schicken. Die entsprechenden Daten des versteckten Felds werden im value-Attribut festgelegt:

<h1>Verstecktes Eingabefeld</h1>

<form action="ziel.php" method="POST">
   <input type="text" name="normalesFeld"> normales Feld<br>
   <input type="hidden" name="versteckt" value="1234"><br>
   <input type="submit">

</form>

HTML PHP input hidden

Nach Klick auf den Submit-Button können wir auf alle Daten aus dem Formular - auch die des versteckten input-Felds - wie gewohnt mit dem $_POST Array zugreifen:

echo $_POST["normalesFeld"];
echo $_POST["versteckt"];

Aber Vorsicht: Auch wenn der Wert des versteckten Felds nicht im Browser visuell angezeigt wird, so kann er doch mittels Seitenquelltext-Ansicht eingesehen werden.

Wozu brauchen wir versteckte Eingabefelder?

Versteckte inputs sind sehr nützlich, wenn wir Daten halten wollen, die wir in mehr als einer PHP-Datei benötigen. Ein Beispiel: Der Nutzer gibt in einem sichtbaren Eingabefeld seinen Namen ein. Die Daten werden an ein erstes PHP-Programm übertragen. Von diesem Programm wird ein weiteres Programm aufgerufen, wo ebenfalls der Name des Benutzers benötigt wird. Durch das versteckte Feld kann der Benutzername vom ersten in das zweite Programm gesendet werden, ohne dass der Benutzer nochmals seinen Namen eingeben muss.

Daten an URL anhängen mit $_GET

Zusätzliche Daten können alternativ auch durch das Anhängen an die URL der Zieladresse gesendet werden. Dazu verwenden wir im action-Attribut des form-Tags folgende Syntax:

<form action="zieldatei.php?name=Dexter&age=37" method="POST">
    <input type="submit">
</form>

Wie wir sehen, befindet sich hinter der Zieldatei ein Fragezeichen ? gefolgt von Variablen mit Werten (alles ohne Anführungszeichen). Mehrere Variablen werden durch ein &-Zeichen getrennt.

Sicher ist Ihnen in der Adressleiste Ihres Browsers schon einmal etwas derartiges aufgefallen:

HTML PHP Range slider

Zugriff auf die gesendeten Daten

Die einzelnen Variablen mit ihren Werten werden auf dem Webserver in einem Array namens $_GET als key und value Paare gespeichert. Auf diese Weise können wir auf sie zugreifen:

echo $_GET["name"]; // Dexter
echo $_GET["age"]; // 37

Sinn und Zweck dieser Art der Datenübermittlung entspricht im Wesentlichen der von versteckten input-Feldern. Auch hier sollte man vorsichtig sein: Da nämlich alle Variablen und Werte in der URL angezeigt werden, empfielt es sich, keine Passwörter oder andere sensible Daten weiterleiten.

Übungen

einfach

Schreiben Sie ein Formular mit zwei versteckten Eingabefeldern. Die Werte sind "C3PO" und "R2D2".

Beim Klick auf den Submit-Button werden die beiden Werte am Bildschirm angezeigt.

Lösung ein-/ausblenden

mittel

Schreiben Sie ein Formular mit einem sichtbaren Eingabefeld, in das der Nutzer eine Zahl eingeben soll. Beim Absenden des Formulars soll außerdem durch Anhängen an die URL der Zielseite der Zahlenwert 2 angehängt werden.

Errechnen Sie im PHP-Programm der Zielseite das Produkt der beiden Zahlen und geben Sie es am Bildschirm aus.

Lösung ein-/ausblenden

schwer

Zum Abschluss ein weniger praktischer: Sie haben drei PHP-Dateien: test1.php, test2.php, test3.php.

Das Zusammenspiel der einzelnen Dateien sieht so aus:

  • test1.php: Hat ein Formular mit einem input-Feld, in das der Nutzer seinen Namen schreibt und anschließend abschickt.
  • test2.php: Hat ein Formular mit einer Radio-Button Gruppe, in dem vier Musik-Genres zur Auswahl stehen: Elektro, Rock, Klassik und Pop.
  • test3.php: Begrüßt den Nutzer mit Namen und gibt zum ausgewählten Musikgenre einen entsprechenden Künstlertipp (denken Sie sich Bands oder Künstler aus, die zum Genre passen).

Das Ganze kann in etwa so aussehen:

versteckte Elemente versteckte Elemente versteckte Elemente

Lösung ein-/ausblenden

Java lernen

text text

PHP Lernen

zur PHP

JavaScript lernen

move nove move

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen