PHP - GET & POST: Verständnis der Datenübertragung in der Web-Entwicklung

Hallo, angehende Web-Entwickler! Heute tauchen wir in eines der fundamentalsten Konzepte in PHP und Web-Entwicklung ein: die GET- und POST-Methoden. Als dein freundlicher Nachbarschaftsinformatiklehrer freue ich mich darauf, dich auf dieser Reise zu führen. Also hole dir dein Lieblingsgetränk, setze dich bequem hin, und lasst uns beginnen!

PHP - GET & POST

Die GET-Methode

Die GET-Methode ist wie das Verschicken einer Postkarte. Alles, was du schreibst, ist für jeden sichtbar, der sie bearbeitet. Sie ist einfach, unkompliziert und perfekt für nicht-sensible Informationen.

Wie GET funktioniert

Wenn du die GET-Methode verwendest, werden Daten als Name-Wert-Paare an die URL angehängt. Sehen wir uns ein Beispiel an:

<a href="welcome.php?name=John&age=25">Klicke mich!</a>

In diesem Beispiel wirst du, wenn du auf den Link klickst, zu "welcome.php" weitergeleitet mit zwei Informationen: name (John) und age (25).

Abrufen von GET-Daten

Auf der Empfängerseite (welcome.php) kannst du diese Daten über das $_GET-Superglobal-Array abrufen:

<?php
echo "Willkommen, " . $_GET['name'] . "! Du bist " . $_GET['age'] . " Jahre alt.";
?>

Das wird ausgegeben: "Willkommen, John! Du bist 25 Jahre alt."

Denke daran, Freunde, GET ist großartig für Suchanfragen, Filterung oder jede Art von Daten, die du nicht daran stören wirst, dass sie in der URL sichtbar sind.

Die POST-Methode

Nun, lassen uns über POST sprechen. Wenn GET wie eine Postkarte ist, dann ist POST wie ein versiegeltes Kuvert. Es ist sicherer und kann größere Mengen an Daten handhaben.

Wie POST funktioniert

POST sendet Daten im Body der HTTP-Anfrage, nicht in der URL. Hier ist ein einfaches Formular, das POST verwendet:

<form action="process.php" method="POST">
<input type="text" name="username" placeholder="Nutzername eingeben">
<input type="password" name="password" placeholder="Passwort eingeben">
<input type="submit" value="Anmelden">
</form>

Abrufen von POST-Daten

In process.php kannst du die übermittelten Daten wie folgt abrufen:

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

echo "Versuche, den Nutzer $username anzumelden";
// Passwörter sollten niemals in realen Anwendungen ausgegeben werden!
?>

POST ist perfekt zum Senden sensibler Daten wie Passwörter oder großer Mengen an Informationen.

Unterschied zwischen GET und POST

Lassen wir die ключевые различия auseinanderhalten:

Eigenschaft GET POST
Sichtbarkeit Daten in der URL sichtbar Daten nicht in der URL sichtbar
Sicherheit Weniger sicher Mehr sicherheit
Datenmenge Begrenzt (etwa 2000 Zeichen) Keine strenge Begrenzung
Caching Kann gecached werden Typischerweise nicht gecached
Lesezeichen Kann als Lesezeichen gespeichert werden Kann nicht als Lesezeichen gespeichert werden
Verwendung Daten abrufen Daten übermitteln

$_GET Array

Das $_GET-Array ist ein PHP-Superglobal, das alle GET-Daten sammelt. Es ist wie ein magischer Korb, der alle Daten einfängt, die über GET gesendet werden.

Beispiel:

Angenommen, du hast eine URL: search.php?category=books&author=rowling

In search.php kannst du diese Daten如此 abrufen:

<?php
$category = $_GET['category'];
$author = $_GET['author'];

echo "Suche nach $category von $author";
?>

Das wird ausgegeben: "Suche nach books von rowling"

$_POST Array

Ähnlich wie $_GET ist $_POST ein Superglobal, das alle POST-Daten sammelt. Es ist wie ein sicherer Tresor, in dem alle POST-Daten gespeichert werden.

Beispiel:

Angenommen, du hast ein Formular, das an process.php POSTet:

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

echo "Empfangene Nachricht von $email: $message";
?>

Denke daran, meine lieben Schüler, immer Benutzerinput zu bereinigen und zu validieren, bevor du ihn in deinen Anwendungen verwendest. Vertraue mir, ich habe schon wilde Dinge gesehen, wenn Entwickler das vergessen!

Praktische Übung

Lassen wir alles mit einem kleinen spaßigen Übungen zusammenbringen. Stellen wir uns vor, wir bauen ein einfaches "Rate die Zahl"-Spiel.

  1. Erstelle ein Formular (GET-Methode), um eine Vermutung einzugeben:
<form action="guess.php" method="GET">
<input type="number" name="guess" placeholder="Gib deine Vermutung (1-100) ein">
<input type="submit" value="Rate!">
</form>
  1. In guess.php die Vermutung verarbeiten:
<?php
$secretNumber = 42; // Unsere geheime Zahl
$guess = isset($_GET['guess']) ? (int)$_GET['guess'] : 0;

if ($guess == $secretNumber) {
echo "Glückwunsch! Du hast es erraten!";
} elseif ($guess < $secretNumber) {
echo "Zu niedrig! Versuche es nochmal.";
} else {
echo "Zu hoch! Versuche es nochmal.";
}
?>

Dieses einfache Spiel zeigt, wie man GET verwendet, um Daten zu senden und zu empfangen, und wie man sie in PHP verarbeitet.

Zusammenfassend ist das Verständnis der GET- und POST-Methoden entscheidend für jeden aufstrebenden PHP-Entwickler. Sie sind wie die Postdienste des Webs, die Daten hin und her zwischen Clients und Servern liefern. Denke daran, GET zu verwenden, wenn du damit einverstanden bist, dass deine Daten für alle sichtbar sind, und POST, wenn du Dinge unter Verschluss halten möchtest.

Als wir aufhören, erinnere ich mich an einen Schüler, der einmal sagte: "GET und POST sind wie öffentliches Sprechen und Flüstern. Manchmal möchtest du, dass alle zuhören, und manchmal nicht!" Das konnte ich nicht besser ausdrücken.

Weiter üben, bleibe neugierig, und viel Spaß beim Programmieren!

Credits: Image by storyset