
SessionHet onthouden van de server wie er op dat moment bezig is op de site, welke naam daar bij hoort en wat die allemaal toe gerechtigd is kan worden beheerd met behulp van een session. De server maakt per bezoeker een session aan op de server met een apart session id. Na verloop van tijd, als de bezoeker niets meer heeft gedaan komt de session te vervallen en wordt er ruimte gemaakt voor nieuwe sessions. Standaard staat de tijd voor het vervallen van een session op 24 minuten. Let wel, de session komt dus te vervallen als er gedurende 24 minuten niets meer gedaan wordt binnen de session.
Als er een bezoeker komt, wordt er een session id aangemaakt, deze is uniek. De server weet dan welke session bij welke bezoeker hoort. Binnen de session kunnen er variabelen opgeslagen worden. Deze variabelen zijn beschikbaar binnen de session met de bijbehorende session id.
Het starten van een session geschiedt door de functie session_start( ); aan te roepen bovenaan de pagina. Als de session gestart is kun je er variabelen in gaan opslaan. Dit kan met behulp van de functie session_register(“variabele”);
<?php
session_start();
$gebruikersnaam = “Piet”;
session_register(“gebruikersnaam”);
?>
Op dit moment heb je een session aangemaakt voor de gebruiker Piet. Als Piet vervolgens naar een andere pagina gaat waar ook session_start(); bovenaan de pagina staat, kan de server uit de session afleiden dat de gebruikersnaam Piet hoort bij deze bezoeker. Dit komt doordat bij de server een uniek id is aangemaakt voor deze bezoeker. De server kan enkele honderden tot duizenden sessions tegelijk afhandelen. Elk met een uniek id.
<?php
session_start();
?>
Uw gebruikersnaam is:
<?php echo ($_SESSION[“gebruikersnaam”]); ?>
In bovenstaand voorbeeld is het mogelijk om uit de session de variabele gebruikersnaam te halen en te voorschijn te halen op een andere pagina. Zonder sessions was je dit niet gelukt. (Cookies is een andere manier om gegevens te onthouden. Deze worden later behandeld. Groot verschil is dat de Cookies op de computer van de bezoeker komt te staan en dat deze te traceren zijn voor anderen.)
Als de bezoeker een pagina verlaat is het mogelijk om de session eerder te beëindigen dan de 24 minuten die standaard ingesteld staan. Door middel van session_unset(); en session_destroy(); wordt de session vernietigd op de server. De variabelen in de session gaan ook teniet. Let wel dat de session eerst aangeroepen moet worden met session_start();.
<?php
session_start();
session_unset(); // alle variabelen vrijgeven
session_destroy(); // session afsluiten
?>
De session is zeer handig in het gebruik bij het maken van een veilig login systeem. Of het 100% veilig is? Nee, die garantie valt niet te geven. Maar het is zeker veiliger dan een login systeem met cookies. Cookies worden opgeslagen aan de kant van de bezoeker en de session aan de kant van de server. De bezoeker kan met het cookie knoeien en sommige browsers weigeren cookies kortweg. Je bent er dan niet zeker van dat iedereen de pagina wel kan bezoeken.
|