Superglobals
Superglobals zijn een heel nieuw begrip in deze cursus. Je kunt er enorm veel mee doen, zoals een inlog script maken, contact formulier (of een formulier in het algemeen) en nog veel meer. Zonder superglobals was bijvoorbeeld deze site zou niet mogelijk zijn geweest zonder superglobals. Er zijn verschillende soort, namelijk:
- GET (vanuit de URL of formulieren)
- POST (vanuit formulieren)
- Cookies
- Sessies
- SERVER variabelen
- Zelfgemaakte superglobals
- Geüploadde bestanden
Deze zijn als volgt uit te lezen in PHP:
- $_GET
- $_POST
- $_COOKIE
- $_SESSION
- $_SERVER
- $GLOBALS
- $_FILES
- $_REQUEST (POST en GET samen)
GET
Stel, we hebben het bestand index.php:
<?php echo 'Je bent nu op de pagina <strong>' . $_GET['sPage'] . '</strong>.'; ?>
Als we nu in plaats van index.php, index.php?sPage=login intypen. Krijgen we als output:
Je bent nu op de pagina login
Hiermee kunnen we onze website enorm dynamisch maken. Want anders zou je bijvoorbeeld voor elke gebruiker op een website een aparte pagina moeten maken, nu hoeven we echter maar 1 pagina te maken en voor elke gebruiker veranderen we gewoon de URL.
Voorbeeld: members.php
<?php
echo '<a href="members.php?sUser=Tomo">Tomo</a><br />
<a href="members.php?sUser=Bart">Bart</a><br />
'; switch($_GET['sUser'])
{
case 'Tomo':
echo 'Startpagina van Tomo';
break;
case 'Bart':
echo 'Startpagina van Bart';
break;
default:
echo 'Gebruiker niet gevonden.';
break;
}?>
Dit kunnen we uiteraard nog veel dynamischer maken met een database, bijvoorbeeld MySQL.
POST
Zoals vermeld komt POST vooral uit formulieren. Om de inhoud van het formulier te krijgen als POST te krijgen moet je method="post" in je form-tag zetten, dus:
<form action="page.php" method="post"> Naam: <input type="text" name="sUsername" /><br /> Wachtwoord: <input type="password" name="sPassword" /><br /> <input type="submit" value="Inloggen" />
Als je nu op Inloggen klikt, zal je de username kunnen krijgen door $_POST['sUsername'] en het wachtwoord door $_POST['sPassword'].
COOKIE
Een cookie is een stukje informatie dat wordt opgeslagen op je computer. Hierdoor is het mogelijk om bijvoorbeeld een inlogsysteem te maken, zonder dat elke keer je inloggegevens moeten worden getransporteerd via GET of POST. Een cookie kun je aanmaken met de functie setcookie.
Gebruik
<?php
if(!isset($_COOKIE['eersteBezoek']))
{
setcookie('eersteBezoek', time());
}
echo 'Je eerste bezoek op deze site was om ' . date('H:i', $_COOKIE['eersteBezoek']);
?>
SESSION
Sessies werken vrijwel hetzelfde als cookies, met als verschil dat de waardes van sessies worden opgeslagen op de server in plaats van op de computer van de gebruiker. Verder hebben sessies een beperkte levensduur, terwijl cookies eeuwig kunnen blijven. Bij het gebruik van sessies wordt er een cookie aangemaakt met een ID erin, met dit ID weet de parser welke sessies bij welke gebruikers horen. Dit is belangrijk te realiseren, want de cookie waarin dit ID is opgeslagen is te veranderen. Zonder beveiliging hiertegen kan iemand sessies van iemand anders 'kapen'.
Gebruik
Bij het gebruik van sessies is het nodig éérst de funties session_start(); te gebruiken.Het is belangrijk dat je deze functie gebruikt voordat er enige output is geweest. Dit betekent dus dat er geen echo/print-functies boven session_start() mogen staan, evenals geen HTML voor de openingstag van PHP.
<?php
//Start de sessies
session_start();
if(!isset($_SESSION['gedrukt']))
{
if(!isset($_GET['gedrukt']))
{
?>
<input type="button" onclick="document.location = 'index.php?gedrukt=ja';" value="Klik hier!" />
<?php
}
else
{
$_SESSION['gedrukt'] = 1;
}
}
else
{
echo 'Je hebt op de knop geklikt.';
}
Andere delen
- Inleiding
- Variabelen
- Loops
- Functies
- Superglobals