HTML-Formulare erstellen

Erste Schritte: HTML-Formulare erstellen (GET/POST)

HTML-Formulare sind das zentrale Element, um Benutzereingaben aufzunehmen und an deinen PHP-Code zu senden. Mithilfe von GET oder POST kannst du Variablen bequem an deinen Server übertragen und weiterverarbeiten. In diesem Tutorial lernst du, wie du einfache Formulare erstellst und welche Methode wann sinnvoll ist.

1. Grundlegender Formular-Aufbau

Jedes HTML-Formular besteht aus:

  • dem <form>-Tag mit action und method
  • mehreren Eingabefeldern (z. B. input, textarea, select)
  • einem Submit-Button, um das Formular abzuschicken
<form action="verarbeiten.php" method="POST">
    <label for="username">Benutzername:</label>
    <input type="text" name="username" id="username">

    <label for="pass">Passwort:</label>
    <input type="password" name="pass" id="pass">

    <button type="submit">Einloggen</button>
</form>

Das Formular sendet die Felder username und pass an verarbeiten.php, wenn du auf „Einloggen“ klickst.

2. GET oder POST?

Im method-Attribut bestimmst du, ob du GET oder POST verwenden möchtest.

  • GET: Die Formulardaten werden an die URL angehängt, z. B. ?username=Max&pass=123. Eignet sich für Lesevorgänge oder Filter, wo man die Daten auch in der URL sehen darf. Limitierte Datengröße und eher ungeschützt sichtbar.
  • POST: Die Formulardaten werden im HTTP-Body versteckt übertragen, also nicht direkt in der URL sichtbar. Sinnvoll für Anmeldeformulare, Bestellungen oder Daten, die mehr Sicherheit und Platz brauchen.
<form action="suche.php" method="GET">
    <input type="text" name="q">
    <button type="submit">Suchen</button>
</form>

<form action="registrieren.php" method="POST">
    <input type="text" name="username">
    <input type="password" name="pass">
    <button type="submit">Registrieren</button>
</form>

3. Zugriff auf Formulardaten in PHP

Im Zielskript (z. B. verarbeiten.php) kannst du mit $_GET oder $_POST auf die Daten zugreifen. Achte darauf, dass du die richtige Methode ansprichst – bei method=“GET“ sind die Daten in $_GET, bei method=“POST“ in $_POST.

<?php
// verarbeiten.php (POST-Beispiel)
$username = $_POST['username'];
$password = $_POST['pass'];

echo "Benutzername: " . htmlspecialchars($username);
echo "<br>Passwort: " . htmlspecialchars($password);
?>

Hier verwendest du htmlspecialchars(), um potenzielle HTML-Zeichen zu maskieren, was eine gewisse Sicherheit (XSS-Schutz) bietet.

4. Verschiedene Eingabetypen

  • text: Einzeilige Texteingabe
  • password: Eingabe, deren Zeichen verschleiert angezeigt werden
  • email: Browser zeigen ggf. Validation/Hinweise (HTML5)
  • number: HTML5-Feld für Zahlen
  • checkbox und radio: Auswahlfelder
  • select: Dropdown-Liste
  • textarea: Mehrzeiliger Text
<form action="feedback.php" method="POST">
  <label>Dein Name:</label>
  <input type="text" name="name">

  <label>Bewertung:</label>
  <select name="rating">
    <option value="1">1 Stern</option>
    <option value="2">2 Sterne</option>
    <option value="3">3 Sterne</option>
  </select>

  <label>Kommentar:</label>
  <textarea name="comment"></textarea>

  <button type="submit">Abschicken</button>
</form>

5. Sicherheit und Validierung

  • CSRF-Schutz: Bei sensiblen Aktionen solltest du ein CSRF-Token verwenden. (siehe PHP-Sicherheitsmechanismen)
  • Eingabedaten prüfen: Mit $_POST bekommst du rohen User-Input. Validiere oder filtere ihn, bevor du ihn speicherst oder weiterverarbeitest.
  • htmlspecialchars(): Verhindert einfache XSS-Angriffe, indem HTML-Sonderzeichen maskiert werden.

6. GET-Parameter in der URL

Wenn du method=“GET“ nutzt oder manuell Parameter an deine Seite hängst (?key=value), kannst du sie so auslesen:

if (isset($_GET['key'])) {
    echo "Wert von key: " . htmlspecialchars($_GET['key']);
}

Das ist nützlich für Such- und Filterfunktionen, wo man die URL teilen oder bookmarken möchte.

7. Zusammenfassung

  • <form> action und method: Definiert das Zielskript und ob GET/POST genutzt wird
  • Formularfelder: input, select, textarea etc., um Daten einzusammeln
  • PHP-Auswertung: $_GET bzw. $_POST liest die übertragenen Werte
  • Sicherheit: Grundlegende Maßnahmen (Validierung, htmlspecialchars) sind ratsam

Fazit

HTML-Formulare stellen das Rückgrat vieler Webanwendungen dar. Indem du GET oder POST verwendest, entscheidest du, ob die Daten in der URL oder im Request-Body übertragen werden. Für einfache Suchfelder und Lesevorgänge ist GET meist ausreichend. Für geschützte oder umfangreiche Formulare empfiehlt sich POST. Egal wie: In verarbeiten.php greifst du sicher über $_GET oder $_POST auf die Daten zu, validierst sie, und gibst je nach Bedarf eine Rückmeldung oder speicherst die Ergebnisse in einer Datenbank. Mit den Grundlagen aus diesem Tutorial kannst du bereits deine erste Formular- und PHP-Interaktion realisieren.