$_GET und $_POST

Geschätzte Lektüre: 6 Minuten 340 Ansichten

Stellen Sie sich vor, das Internet ist wie ein riesiges Restaurant. Wenn Sie eine Webseite besuchen, ist das, als würden Sie im Restaurant eine Bestellung aufgeben. $_GET und $_POST sind zwei verschiedene „Bestellzettel“, mit denen Ihr Browser (der Gast) Daten an den Server (die Küche) schickt.

Was sind $_GET und $_POST?

$_GET und $_POST sind sogenannte „Superglobals“ in PHP – spezielle Variablen, die immer verfügbar sind und Daten enthalten, die vom Browser an den Server gesendet wurden.

$_GET – Die sichtbare Bestellung

$_GET ist wie eine Bestellung, die auf einem Zettel geschrieben und durch das Restaurant getragen wird. Jeder kann sie lesen.

  • Funktion: Sammelt Daten, die in der URL stehen
  • Sichtbarkeit: Die Daten sind in der Adresszeile sichtbar
  • Verwendung: Für nicht-sensitive Daten, Filter, Suchanfragen
  • Limits: Begrenzte Datenmenge (URL-Länge ist limitiert)

Beispiel:

// URL: http://example.com?name=Max&age=30
echo "Hallo " . $_GET['name']; // Ausgabe: Hallo Max
echo "Du bist " . $_GET['age'] . " Jahre alt."; // Ausgabe: Du bist 30 Jahre alt.

$_POST – Die geheime Bestellung

$_POST ist wie eine Bestellung, die in einem verschlossenen Umschlag übergeben wird. Nur der Empfänger sieht den Inhalt.

  • Funktion: Sammelt Daten aus dem „Body“ der HTTP-Anfrage
  • Sichtbarkeit: Daten sind nicht in der URL sichtbar
  • Verwendung: Für Formulare, Logins, sensitive Daten
  • Limits: Größere Datenmengen möglich (abhängig von Serverkonfiguration)

Beispiel:

<!-- HTML Formular -->
<form method="post" action="verarbeite.php">
  <input type="text" name="benutzername">
  <input type="password" name="passwort">
  <button type="submit">Absenden</button>
</form>
// verarbeite.php
$benutzer = $_POST['benutzername'];
$passwort = $_POST['passwort'];
// Verarbeite die Daten...

Wann verwende ich was?

Kriterium$_GET$_POST
DatenmengeKlein (URL-Limit)Groß (mehrere MB möglich)
SicherheitNicht für sensitive DatenBesser für sensitive Daten
SichtbarkeitIn URL sichtbarIm Request-Body versteckt
BookmarksKann gebookmarkt werdenKann nicht gebookmarkt werden
Formular-Methodemethod=“get“method=“post“
Typische AnwendungSuchanfragen, Filter, PaginierungLogins, Registrierungen, Datenuploads

Praktische Beispiele

Beispiel 1: Suchfunktion mit $_GET

<!-- Suchformular -->
<form method="get" action="suche.php">
  <input type="text" name="suchbegriff">
  <button type="submit">Suchen</button>
</form>
// suche.php
$suchbegriff = $_GET['suchbegriff'];
echo "Suchergebnisse für: " . htmlspecialchars($suchbegriff);
// Hier würde normalerweise eine Datenbankabfrage folgen

Beispiel 2: Kontaktformular mit $_POST

<form method="post" action="kontakt.php">
  <input type="text" name="name" placeholder="Ihr Name">
  <input type="email" name="email" placeholder="Ihre E-Mail">
  <textarea name="nachricht"></textarea>
  <button type="submit">Absenden</button>
</form>
// kontakt.php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $name = $_POST['name'];
  $email = $_POST['email'];
  $nachricht = $_POST['nachricht'];
  
  // Validierung der Daten
  if (empty($name) {
    echo "Bitte geben Sie Ihren Namen ein";
  } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Bitte geben Sie eine gültige E-Mail ein";
  } else {
    // Daten sind okay, verarbeite sie weiter
    mail("kontakt@example.com", "Neue Kontaktanfrage", $nachricht);
    echo "Vielen Dank für Ihre Nachricht!";
  }
}

Sicherheitshinweise

01. Always validate and sanitize input!

// Schlecht:
echo $_GET['eingabe'];

// Gut:
echo htmlspecialchars($_GET['eingabe']);

02. Check if values exist before using them

if (isset($_POST['username'])) {
  // sicher arbeiten
}

03. Für Passwörter:
• Niemals $_GET verwenden!
• Passwörter hashen: password_hash() und password_verify()

Zusammenfassung

  • $_GET: Für nicht-sensitive Daten, die in der URL sichtbar sein dürfen (wie eine Postkarte)
  • $_POST: Für sensitive oder größere Datenmengen (wie ein versiegelter Brief)
  • Sicherheit: Immer validieren und bereinigen, besonders bei Benutzereingaben
  • Anwendungen: $_GET für Suchen/Filtern, $_POST für Formulare/Logins
Dieses Dokument teilen

$_GET und $_POST

Oder Link kopieren

INHALT

Abonnieren

×
Cancel