Sessies in PHP

Sessies maken het mogelijk om variabelen te gebruiken binnen een hele website. Op het moment dat een bezoeker een website bezoekt, wordt een sessie id aangemaakt. Een dergelijk id is een uniek nummer. Het unieke nummer komt te vervallen op het moment dat de bezoeker uitlogt, de browser zal afsluiten of een op de server van tevoren ingestelde tijd geen actie meer heeft ondernomen op de website. Je kunt met sessions werken via cookies of via de session_id in de URL.

Een sessie wordt gestart door gebruik te maken van de functie session_start(). Dan wordt er voor iedere bezoeker een uniek sessie_ID aangemaakt dat gedurende het verblijf op de website wordt meegenomen. Doordat je nu zo’n uniek ID hebt is het mogelijk gegevens op te slaan in de vorm van sessievariabelen. Hiervoor wordt de PHP-variabele $_SESSION[] gebruikt. Je kunt sessievariabelen ook wissen door de functie unset(). Tot slot is het mogelijk om de sessie te vernietigen waarbij alle sessievariabelen, inclusief het sessie_ID worden verwijderd.
Daarvoor gebruik je de functie session_destroy().

In de onderstaande tabel staan diverse functies die van belang zijn bij het werken met sessies.


Functie Betekenis
session_start() Opent nieuwe sessie of stelt gegevens bestaande sessie beschikbaar
session_id() Geeft huidige session ID terug of je kunt zelf een ID meegeven als String voor een sessie
session_unset() Alle geregistreerde variabelen komen vrij, de sessie blijft bestaan, alleen de waarden van de variabelen zijn weg
session_destroy() Verwijdert alle data voor een sessie. De sessie is daarmee ten einde

We illustreren het gebruik van sessies aan de hand van een voorbeeld:

<?php
     session_start();

     // opslag van sessiedata
     $naam = "Alan Turing";
     $_SESSION['naam'] = $naam;
?>

<!DOCTYPE html>
<html lang="nl">
     <head>
           <title>sessies</title>
           <meta charset="utf-8">
     </head>
     <body>
     <?php
           echo $_SESSION['naam'];
     ?>

     </body>
</html>

 

Nadat er een nieuwe sessie is gestart, wordt de waarde van de variabele $naam toegekend aan de array $_SESSION[]. Vervolgens wordt de waarde van de variabele $naam op het scherm getoond. Dat is letterlijk de tekst “Alan Turing”.

In het volgende script starten we een sessie en kennen we de waarde van de variabele $naam toe aan de array $_SESSION[]. Daarna wordt de waarde van de variabele $naam evenals de session_id op het scherm getoond.

 


<?php
     session_start();
     $naam = "Ronald";
     $_SESSION['naam'] = $naam;
?>

<!DOCTYPE html>
<html lang="nl">
     <head>
           <title>sessies</title>
           <meta charset="utf-8">
     </head>
     <body>
           <h4>Uw gebruikersnaam voor deze sessie is:
                       <?php echo $_SESSION['naam'] . "<br>";
                       $session_id = session_id();
                       echo "Het session_id = $session_id";
                 ?>
           </h4>
     </body>
</html>