PHP sessions

Session

Het onthouden dat een gebruiker is inlogd doen we in een session. Om hiervan gebruik te maken hebben we aan index.php helemaal boven in session_start(); staan.

Sessie variabele komen in $_SESSION te staan. Dit is een array die wij zelf kunnen vullen. En bewaard blijven zolang de browser open staat en de tijdsduur van de sessie niet is verstreken.
PHP regelt op de achtergrond dat er een session-cookie wordt geplaatst in de browser van de bezoeker. Hier staat een code in die overeenkomt met een code op de server. Alle gegevens die wij in $_SESSION opslaan blijven op de server staan en niet in de browser.

Omdat we de gegevens van de gebruiker op veel pagina's gaan gebruiken is het handig om alle gegevens van een gebruiker op te halen uit de database en in de sessie te zetten. (alleen wachtwoord liever niet). Door de gegevens in de $_SESSION te zetten is het niet meer nodig om elke keer dat een bezoeker van pagina wisselt de gebruikergegevens uit de database op te halen.

Gebruikelijk is om gebruikergegevens in $_SESSION['user'] te zetten. Meestal is dat een array met alle gegevens van de user oa. name en email.

In het framework is een helper functie beschikbaar user(). Hiermee kan een ingelogde gebruiker worden getoond. Bv:

user()->email;  //email van de ingelogde gebruiker

Let op: Indien je geen ingelogde gebruiker bent zal bovenstaande code een error opleveren. Dus dit kan alleen gebruikt worden bij een ingelogde gebruiker

Mocht je ergens in je code niet zeker weten of een user is ingelogd kan je ook het volgende gebruiken.

user()?->email; // email van ingelogde gebruiker of null als niet ingelogd