Een inlogsysteem maken met PHP sessions

Als je zelf een inlogsysteem wilt maken, kom je niet om PHP sessions heen. In dit artikel leggen we uit wat PHP sessions zijn, en hoe je ze kunt gebruiken in je eigen website om een inlogsysteem te maken.

Wat zijn PHP sessions?

Een PHP session is een manier om een bezoeker te identificeren. Als je een PHP session opent voor een bezoeker, krijgt de bezoeker een cookie op zijn computer met een unieke code. Aan deze code is de bezoeker te herkennen. PHP slaat de gegevens van de session ook op, op de harde schijf van de server. Hierdoor is een PHP session een hele veilige methode om een inlogsysteem te maken.

Een PHP session starten

Voordat we beginnen met het maken van het inlogsysteem, gaan we echter eerst kijken naar een paar basiscommando's die we nodig hebben bij het gebruik van PHP sessions. We starten met het starten van een session. Dat gaat zo:

Het starten van een session moet altijd gebeuren voordat er andere data verzonden is.

Door de bovenstaande code is er een session gestart voor de bezoeker. Hij heeft nu een cookie met unieke code op zijn computer, en de webserver kan de bezoeker op die manier identificeren. Vervolgens kunnen we ook gegevens opslaan in de session (die gegevens worden opgeslagen op de webserver, niet op de computer van de bezoeker). Laten we bijvoorbeeld de naam van de bezoeker opslaan:

Door de bovenstaande code is de naam van de bezoeker opgeslagen in de session die op de webserver staat. We kunnen nu in elke pagina van onze website de naam van de bezoeker oproepen:

In dit geval start session_start() geen nieuwe session, omdat er al een session is gestart voor de bezoeker. Toch moeten we het commando aanroepen, omdat het in dit geval controleert of er al een session is gestart, en de gegevens (in ons geval de naam van de bezoeker) beschikbaar maakt voor verder gebruik.

Nu we de basis onder de knie hebben, kunnen we beginnen met het echte werk: een inlogsysteem.

Het inlogsysteem

login.php

We beginnen met een bestand dat we login.php noemen. Dit bestand bevat enkel een HTML-formulier, waarmee de bezoeker kan inloggen. De code voor het formulier zou er als volgt uit kunnen zien:

Meer weten over formulieren? Lees dan ons artikel Werken met formulieren.

login-verwerk.php

We gaan verder met een bestand dat we login-verwerk.php noemen. Dit bestand zal controleren of de gebruiker de juiste gebruikersnaam en wachtwoord heeft ingetypt. Vervolgens zal het een PHP session openen, indien de gebruikersnaam en wachtwoord juist waren.

Eerst controleren we of gebruikersnaam en wachtwoord wel ingevuld zijn:

Vervolgens controleren we de inloggegevens, en openen we een session indien de gevens juist waren. In de session slaan we de gebruikersnaam op.

Zoals je ziet, zijn er in het bovenstaande voorbeeld twee gebruikers toegevoegd. Op dezelfde manier kun je zelf nog meer gebruikers toevoegen.

Nu plaatsen we nog even een waarschuwing als de gebruikersnaam en/of het wachtwoord niet juist ingevuld waren. De uiteindelijke code voor login-verwerk.php wordt dan:

Controleren of de bezoeker ingelogd is

Nu kunnen we op elke pagina van onze website controleren of een bezoeker ingelogd is. Dit gaat op de volgende manier:

Het enige dat we doen, is controleren of de gebruikersnaam is opgeslagen in de session. Als dit niet het geval is, is de gebruiker duidelijk niet ingelogd.

logout.php

Tenslotte maken we nog één bestandje aan: logout.php. Dit bestand zal ervoor gaan zorgen dat de gebruiker ook weer uitgelogd kan worden. De code hiervoor is als volgt:

Zoals je ziet, controleren we eerst of de gebruiker ingelogd is. Vervolgens gebruiken we het commando unset om de gebruikersnaam uit de session te verwijderen. Hierdoor is de gebruiker uitgelogd.

Slot

Het inlogsysteem dat we in dit artikel behandelen is erg basic. Als je een erg grote website hebt, zal dit systeem dan ook niet voldoende zijn. Toch laat dit artikel zien hoe (bijna) elk inlogsysteem op het internet werkt: met PHP sessions.

Bookmark and Share