0Pricing
PHP Academy · Lektion

GET vs. POST: Wann Sie welche Methode verwenden

Verstehen Sie den Unterschied zwischen HTTP GET und POST in PHP.

GET vs. POST: Wann Sie welche Methode verwenden ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

HTTP-Methoden in PHP-Webanwendungen

Wenn ein Browser ein HTML-Formular sendet, verwendet er entweder die HTTP-Methode GET oder POST. PHP erfasst die gesendeten Daten über Superglobals:

  • $_GET — an die URL angehängte Daten
  • $_POST — Daten im Request-Body

GET-Methode

GET hängt Formulardaten als Query-String-Parameter an die URL an:

<!-- HTML form -->
<form method="GET" action="search.php">
    <input name="query" type="text">
    <button type="submit">Search</button>
</form>

<!-- URL becomes: search.php?query=php+tutorial -->

<?php
$q = $_GET['query'] ?? '';
echo 'You searched for: ' . htmlspecialchars($q);

POST-Methode

POST sendet Daten im HTTP-Request-Body — sie sind in der URL nicht sichtbar:

<!-- HTML form -->
<form method="POST" action="login.php">
    <input name="email" type="email">
    <input name="password" type="password">
    <button type="submit">Log In</button>
</form>

<?php
$email    = $_POST['email']    ?? '';
$password = $_POST['password'] ?? '';

Wann Sie GET verwenden sollten

Verwenden Sie GET, wenn:

  • der Request idempotent ist (keine Seiteneffekte hat)
  • die Daten in der URL erscheinen dürfen — etwa Suchanfragen, Filter oder Seitennummerierung
  • Sie URLs als Lesezeichen speichern oder teilen möchten
  • die Daten nicht vertraulich sind

Wann Sie POST verwenden sollten

Verwenden Sie POST, wenn:

  • der Request den Serverstatus ändert (Erstellen, Aktualisieren, Löschen)
  • die Daten vertraulich sind (Passwörter, persönliche Informationen)
  • große Datenmengen gesendet werden (Dateien, lange Texte)
  • die Daten nicht von Browsern oder Proxys zwischengespeichert werden sollen

Längenbegrenzungen von GET

GET-Requests unterliegen Längenbegrenzungen für URLs (in der Praxis typischerweise etwa 2000 Zeichen). Für POST gibt es außer der Serverkonfiguration keine praktische Begrenzung:

<?php
// php.ini settings for POST limits:
// post_max_size = 8M   (total POST body size)
// upload_max_filesize = 2M

// Check current limits at runtime:
echo ini_get('post_max_size');        // 8M
echo ini_get('upload_max_filesize');  // 2M

$_REQUEST-Superglobal

$_REQUEST führt $_GET, $_POST und $_COOKIE zusammen. Das ist praktisch, macht die Datenquelle aber weniger eindeutig:

<?php
// Works for both GET and POST but is ambiguous
$name = $_REQUEST['name'] ?? '';

// Better: be explicit about the expected method
$name = match($_SERVER['REQUEST_METHOD']) {
    'GET'  => $_GET['name']  ?? '',
    'POST' => $_POST['name'] ?? '',
    default => '',
};

Request-Methode prüfen

Prüfen Sie immer die Request-Methode, bevor Sie Formulardaten verarbeiten:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    if (!empty($name)) {
        echo 'Hello, ' . htmlspecialchars($name);
    }
} else {
    // Show empty form
}

HTTPS und Datensicherheit

Auch bei POST sind Daten im Klartext sichtbar, sofern Sie nicht HTTPS verwenden. Wichtige Sicherheitsregeln:

  • Verwenden Sie in der Produktion immer HTTPS
  • Senden Sie Passwörter niemals per GET
  • POST über HTTP ist weiterhin unsicher — HTTPS verschlüsselt auch den Body

Nach POST weiterleiten (PRG-Muster)

Leiten Sie nach einem erfolgreichen POST auf einen GET-Request weiter, um doppelte Übermittlungen beim Aktualisieren der Seite zu verhindern:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Process the form...
    $id = saveToDatabase($_POST);
    
    // Post-Redirect-Get (PRG) pattern
    header('Location: /success.php?id=' . $id);
    exit;
}

Multipart-Formulare für Datei-Uploads

Für Datei-Uploads muss das Formular mit POST und enctype="multipart/form-data" gesendet werden:

<!-- Required for file uploads -->
<form method="POST" action="upload.php"
      enctype="multipart/form-data">
    <input type="file" name="avatar">
    <button type="submit">Upload</button>
</form>

<?php
$file = $_FILES['avatar'];
echo $file['name'];  // original filename

Kurze Überprüfung

Welche HTTP-Methode sollten Sie beim Absenden eines Login-Formulars mit Benutzername und Passwort verwenden?

Zusammenfassung: GET vs POST

Wichtige Unterschiede:

  • GET — in der URL, als Lesezeichen speicherbar, keine Seiteneffekte, begrenzte Größe
  • POST — im Body, für vertrauliche Daten, keine URL-Begrenzung
  • Verwenden Sie immer HTTPS, um sowohl GET- als auch POST-Daten zu schützen
  • Prüfen Sie $_SERVER['REQUEST_METHOD'], bevor Sie Daten verarbeiten
  • Wenden Sie das PRG-Muster an, um doppelte POST-Übermittlungen zu verhindern

Häufig gestellte Fragen

Ist die Lektion „GET vs. POST: Wann Sie welche Methode verwenden“ kostenlos?

Ja — der vollständige Text von „GET vs. POST: Wann Sie welche Methode verwenden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „GET vs. POST: Wann Sie welche Methode verwenden“?

Verstehen Sie den Unterschied zwischen HTTP GET und POST in PHP. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „GET vs. POST: Wann Sie welche Methode verwenden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. GET vs. POST: Wann Sie welche Methode verwenden
  2. Formulardaten mit Superglobals auslesen
  3. Techniken zur Eingabevalidierung
  4. Benutzereingaben bereinigen
← Zurück zu PHP Academy