Superglobala variabler
PHP har inbyggda arrayer som alltid finns tillgängliga, med information om anropet och besökaren.
Alltid tillgängliga
Superglobala variabler är inbyggda arrayer som går att använda överallt i koden, utan att du skapar dem själv.
| Variabel | Innehåll |
|---|---|
$_SERVER |
Information om servern och anropet |
$_GET |
Värden från adressens frågesträng |
$_POST |
Värden från formulär som skickats med POST |
$_COOKIE |
Kakor som webbläsaren skickat med |
$_SESSION |
Sessionsdata (kommer i modulen om sessioner) |
På kommandoraden finns dessutom $argc och $argv, som du redan använt.
$_GET: värden i adressen
Det som står efter ? i en adress kallas frågesträng. Varje namn=värde hamnar i $_GET:
http://localhost:8000/profil.php?namn=Henrik&stad=Göteborg
?? ger ett standardvärde om nyckeln saknas, så slipper du en varning.
GET eller POST?
| GET | POST | |
|---|---|---|
| Var syns värdena? | I adressen | Inte i adressen |
| Mängd data | Begränsad | Stor |
| Passar för | Sökningar och länkar som ska gå att spara som bokmärke eller skicka vidare | Formulär som ändrar något, och känsliga uppgifter |
POST-data är inte krypterad i sig. Det är https som skyddar den på vägen.
$_SERVER: information om anropet
Vill du se allt som finns i en superglobal kan du skriva ut hela arrayen:
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
<pre> gör att radbrytningarna syns i webbläsaren.
Prova själv
- Ändra länken i första exemplet så att den skickar med ett tredje värde, och skriv ut det.
- Gör om formuläret från förra lektionen till
method="get". Vad händer med adressen när du skickar?