Zum Skriptum
Skriptum 02 + 03

Funktionen & Formulare

PHP-Funktionen mit POST-Formularen kombinieren

Was du in dieser Aufgabe uebst

Funktionen aufrufen

Du setzt Funktionen mit verschiedenen Parametern ein

Formulare verarbeiten

Du kombinierst POST-Daten mit PHP-Funktionen

Datenvalidierung

Du pruefst Eingaben und gibst aussagekraeftige Ausgaben

Hinweis zur Bearbeitung

Erstelle für jede Aufgabe eine eigene .php-Datei in deinem lokalen XAMPP-Ordner (htdocs/). Die Datei verarbeitet sowohl das Formular als auch die PHP-Logik – du brauchst also nur eine Datei pro Aufgabe. Öffne sie im Browser über http://localhost/deineDatei.php.

Das Grundmuster: Formular + Funktion in einer Datei

Bei allen Aufgaben verwenden wir das Self-Processing-Muster: Die PHP-Datei sendet das Formular an sich selbst (action=""). Am Anfang der Datei prüfen wir, ob Daten per POST angekommen sind – wenn ja, rufen wir unsere Funktion auf.

<?php
// 1. Funktion DEFINIEREN (läuft noch nicht)
function meineFunktion($eingabe) {
    return "Ergebnis: " . $eingabe;
}

// 2. POST-Daten prüfen und Funktion AUFRUFEN
$ergebnis = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $eingabe = htmlspecialchars($_POST['feld']);
    $ergebnis = meineFunktion($eingabe);
}
?>
<!-- 3. HTML-Formular -->
<form method="post" action="">
    <input type="text" name="feld">
    <button type="submit">Absenden</button>
</form>
<p><?= $ergebnis ?></p>

Sicherheit nicht vergessen!

Jede Benutzereingabe aus $_POST muss mit htmlspecialchars() abgesichert werden, bevor sie ausgegeben wird.

Aufgabe 1

Persönliche Begrüßung

Einfach

Erstelle eine Datei aufgabe1.php mit einem Formular und einer PHP-Funktion.

  1. Schreibe eine Funktion begruessung($name, $titel = "Hallo"), die einen Begrüßungstext als String zurückgibt (nicht direkt ausgibt).
  2. Das Formular (POST) hat ein Textfeld für den Namen und ein zweites optionales Textfeld für den Titel (z. B. „Guten Morgen", „Willkommen").
  3. Nach dem Absenden wird der Rückgabewert der Funktion auf der Seite angezeigt.
  4. Ist kein Titel angegeben, soll automatisch „Hallo" verwendet werden (Standardwert!).
Tipp: Nutze return statt echo in der Funktion – so kannst du das Ergebnis in einer Variable speichern und es erst im HTML-Teil ausgeben. Prüfe mit !empty(), ob das Titel-Feld tatsächlich ausgefüllt wurde, bevor du es an die Funktion übergibst.
<?php
// Funktion mit Standardwert für $titel
function begruessung($name, $titel = "Hallo") {
    return $titel . ", " . $name . "!";
}

$ausgabe = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = htmlspecialchars($_POST['name']);
    $titel = htmlspecialchars($_POST['titel']);

    if (!empty($titel)) {
        $ausgabe = begruessung($name, $titel);
    } else {
        $ausgabe = begruessung($name); // Standardwert "Hallo" greift
    }
}
?>
<!DOCTYPE html>
<html lang="de"><body>
    <form method="post" action="">
        <label>Name: <input type="text" name="name" required></label><br>
        <label>Titel (optional): <input type="text" name="titel"></label><br>
        <button type="submit">Begrüßen</button>
    </form>
    <p><strong><?= $ausgabe ?></strong></p>
</body></html>

Der Standardwert $titel = "Hallo" greift automatisch, wenn beim Aufruf kein zweites Argument übergeben wird. Das ist ein Schlüsselprinzip von Funktionen mit Default-Parametern.

Dynamische Webseiten 2 | eduhigh.net | Seminarunterlagen