Zum Inhalt

HTTP Parameter#

HTTP Parameter werden in der URL übergeben. Sie werden mit einem ? getrennt von der URL. Die Parameter werden mit einem & getrennt. Ein Parameter besteht aus einem Namen und einem Wert. Der Wert wird mit einem = getrennt. Der Wert kann auch leer sein. Der Name und der Wert werden URL-kodiert. Das bedeutet, dass Leerzeichen mit einem + ersetzt werden und Sonderzeichen mit % und einem Hexadezimalwert ersetzt werden. Der Wert kann auch ein Array sein. Dann wird der Name mehrfach verwendet. Der Wert eines Arrays wird mit einem , getrennt.

GET und POST#

GET wird in der URL übergeben. POST wird im Body übergeben. GET wird in der URL angezeigt, wobei POST nicht angezeigt wird. GET ist limitiert auf 2048 Zeichen, POST ist unbegrenzt. GET ist für Suchanfragen, POST für Formulare. Wenn die Werte nicht übergeben wurden, dann wird eine Warnung angezeigt. Um diese zu verhindern kann mit isset() geprüft werden, ob der Wert übergeben wurde. Mithilfe von empty() kann geprüft werden, ob der Wert leer ist. In PHP wird ein assoziatives Array hinterlegt, mit dem Namen des Parameters. Über sogenannte SuperGlobals kann auf die Parameter zugegriffen werden. Über $_SERVER["PHP_SELF"] kann direkt auf die aktuelle Seite verwiesen werden.

<form action='<?php echo $_SERVER["PHP_SELF"] ?>' method="get">
    Name: <input type="text" name="name" /><br />
    Alter: <input type="number" name="alter" /><br />
    <input type="Submit" value="Absenden" />
</form>
<?php
//http://localhost:3000/?name=Manuel&alter=18

if(isset($_GET["name"]))
{
    echo $_GET["name"]; //Manuel
}

if(isset($_GET["alter"]))
{
    echo $_GET["alter"]; //18
}
<form action="seite2.php" method="post">
    Name: <input type="text" name="name" /><br />
    Alter: <input type="number" name="alter" /><br />
    <input type="Submit" value="Absenden" />
</form>
<?php
echo $_POST["name"]; //Manuel

echo $_POST["alter"]; //18

Anwendungsfälle#

Aufgabe GET GET
Cacheable Browser & Server
Wiederaufrufbar
Sichtbarkeit Sichtbar in URL Nicht sichtbar
Sicherheit Sensitive Daten sichtbar Sensitive Daten versteckt
Zeichenlimit 2048 Unbegrenzt (Limit bei Server)
Zeichenart Nur ASCII Alles erlaubt (Bilder, Audio, Binary, ...)
Abfrage Daten anfordern Daten modifizieren

Redirects#

Ein Redirect ist ein HTTP-Header, der den Browser dazu auffordert, eine andere URL aufzurufen. Ein Redirect kann mit header() gesendet werden. Der erste Parameter ist der HTTP-Statuscode. Der zweite Parameter ist die URL. Der Statuscode 301 ist permanent, 302 ist temporär. Der Browser speichert den Redirect und führt ihn bei einem erneuten Aufruf aus.

<?php
header("Location: https://neueUrl.dev", true, 301);
exit();