Een sessie in PHP is een manier om gegevens over meerdere pagina’s heen te bewaren. In tegenstelling tot cookies, die gegevens opslaan aan de clientzijde, worden sessiegegevens opgeslagen aan de serverzijde en worden gekoppeld aan een unieke sessie-ID. Deze sessie-ID wordt doorgaans opgeslagen in een cookie of in de URL en wordt gebruikt om een gebruiker gedurende zijn bezoek aan de website te identificeren.
Bij het starten van een sessie, wordt er een unieke sessie-ID gegenereerd en een bestand op de server aangemaakt om sessiegegevens op te slaan. Dit maakt het mogelijk om gegevens zoals gebruikersinlogstatus, winkelwageninhoud of gebruikersvoorkeuren te beheren zonder ze opnieuw te moeten verwerken bij elke paginaverversing of -navigatie.
Om een sessie te starten, gebruik je de functie `session_start()`. Dit moet vóór alle HTML-uitvoer of andere PHP-code komen.
```
session_start();
$_SESSION[‘gebruikersnaam’] = ‘Jan’;
echo ‘De gebruikersnaam is ‘ . $_SESSION[‘gebruikersnaam’];
?>
```
Sessiegegevens worden opgeslagen in de superglobal array `$_SESSION`. Je kunt gegevens eenvoudig instellen door ze toe te wijzen aan een sleutel binnen deze array.
```
session_start();
$_SESSION[‘gebruikersnaam’] = ‘Jan’; // Gegevens instellen
echo ‘De gebruikersnaam is ‘ . $_SESSION[‘gebruikersnaam’]; // Gegevens lezen
?>
```
Om specifieke gegevens uit een sessie te verwijderen, kun je `unset()` gebruiken:
```
session_start();
unset($_SESSION[‘gebruikersnaam’]);
?>
```
Om een sessie volledig te beëindigen, kun je de sessiegegevens verwijderen en de sessie vernietigen met `session_destroy()`.
```
session_start();
session_unset(); // Verwijdert alle sessievariabelen
session_destroy(); // Vernietigt de sessie
?>
```
Er zijn verschillende configuratieopties voor sessies die ingesteld kunnen worden via de php.ini-bestand of tijdens de runtime met `ini_set()`. Bijvoorbeeld `session.gc_maxlifetime` bepaalt de levensduur van een sessie in seconden.
Een praktisch voorbeeld van het gebruik van sessies is bij het maken van een winkelwagen. Hier is een eenvoudig voorbeeld:
```
session_start();
// Voeg een product toe aan de winkelwagen
$product = array(“id” => 1, “naam” => “Boek”, “prijs” => 10.00);
if(!isset($_SESSION[‘winkelwagen’])) {
$_SESSION[‘winkelwagen’] = array();
}
$_SESSION[‘winkelwagen’][] = $product;
// Toon de inhoud van de winkelwagen
foreach($_SESSION[‘winkelwagen’] as $item) {
echo $item[‘naam’] . ‘ – ‘ . $item[‘prijs’] . ‘
’;
}
?>
```
De officiële PHP-manual biedt uitgebreide en betrouwbare informatie over sessies in PHP:
- [PHP: Sessions – Manual](https://www.php.net/manual/en/book.session.php)
- [PHP: session\_start – Manual](https://www.php.net/manual/en/function.session-start.php)
- [W3Schools PHP Sessions](https://www.w3schools.com/php/php_sessions.asp)
Door deze bronnen te raadplegen, kun je een goed begrip krijgen van sessies in PHP en leren hoe je ze effectief kunt beheren in je webapplicaties.