Een pagina omleiden in PHP kan eenvoudig worden gedaan met behulp van de `header`-functie. De `header`-functie stuurt een raw HTTP-header naar de client voordat enige andere output wordt verzonden. Dit betekent dat je deze functie moet aanroepen voordat je ook maar iets naar de browser hebt gestuurd (zoals HTML of echo-statements), anders zal je een foutmelding krijgen.
De meest eenvoudige manier om een omleiding te realiseren in PHP is door de `Location` header te gebruiken. Hieronder vind je een voorbeeld van hoe je een pagina kunt omleiden:
```
header(“Location: https://www.example.com”);
exit();
?>
```
- `header(“Location: https://www.example.com”);`: Dit stuurt een HTTP-header naar de browser die aangeeft dat de locatie moet veranderen naar de opgegeven URL.
- `exit();`: Deze functie zorgt ervoor dat het script stopt met uitvoeren zodat er geen verdere ongewenste uitvoer naar de client wordt gestuurd.
Het is ook mogelijk om een specifieke HTTP statuscode mee te geven bij de omleiding. Dit kan nuttig zijn voor SEO-doeleinden of voor het verbeteren van de gebruikservaring. De meest voorkomende statuscodes zijn 301 (permanente omleiding) en 302 (tijdelijke omleiding).
```
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: https://www.example.com”);
exit();
?>
```
- `header(“HTTP/1.1 301 Moved Permanently”);`: Dit voegt een HTTP statuscode toe aan de header om aan te geven dat de omleiding permanent is.
Vaak wil je gebruikers omleiden op basis van bepaalde voorwaarden, zoals sessies, input-data, of gebruikersrollen. Hier is een voorbeeld van een dergelijke voorwaardelijke omleiding:
```
session_start(); // Start de sessie, indien je sessie data wilt gebruiken
if (!isset($_SESSION[‘user’])) {
header(“Location: https://www.example.com/login.php”);
exit();
} else {
echo “Welcome, “ . $_SESSION[‘user’];
}
?>
```
- `session_start();`: Dit start een nieuwe sessie of hervat een bestaande sessie.
- `if (!isset($_SESSION[‘user’])) { … }`: Controleert of de sessievariabele ‘user’ is ingesteld.
- `header(“Location: https://www.example.com/login.php”);`: Stuurt de gebruiker naar de login pagina indien de gebruiker niet ingelogd is.
1. Omleiden naar een andere pagina na succesvolle formulierenindiening:
```
if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
// verwerken van het formulier
header(“Location: https://www.example.com/thankyou.php”);
exit();
}
?>
```
1. Omleiden op basis van gebruikersrol:
```
session_start();
if ($_SESSION[‘role’] == ‘admin’) {
header(“Location: https://www.example.com/admin_dashboard.php”);
} else {
header(“Location: https://www.example.com/user_dashboard.php”);
}
exit();
?>
```
- [PHP.net – Header Function](https://www.php.net/manual/en/function.header.php)
- [RFC 2616 – HTTP/1.1 Status Code Definitions](https://tools.ietf.org/html/rfc2616#section-10)
- [Mozilla Developer Network – HTTP Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location)
Deze bronnen bevatten uitgebreide informatie over hoe HTTP headers werken, hoe je ze kunt gebruiken in PHP, en de verschillende toepassingsgebieden waarin ze nuttig kunnen zijn.