web2 logo

Werken met cookies

Via cookies kan een website gegevens opslaan in de browser van de bezoeker van de website. Deze gegevens kunnen ook weer opgevraagd worden, ook tijdens een later bezoek aan de website. Een gebruiker kan instellen dat de browser de cookies niet opslaat, of dat de cookies bij het sluiten van de browser worden verwijderd. In dat geval zal je de tijdens het bezoek aan de website opgeslagen gegevens niet meer kunnen opvragen.
Cookies bevatten gegevens in de vorm van naam-waarde paren. Bijvoorbeeld:
Gebruiker=Jan
Email=jan@mail.com

Cookies worden gebruikt om registratiegegevens zoals gebruikersnaam en wachtwoord te onthouden. Ook kunnen voorkeuren van de bezoeker ten behoeve van het gebruik van de website worden onthouden. Bij webwinkels worden cookies gebruikt om te onthouden wat je in je winkelwagentje hebt gedaan, verwijder je je cookies, dan is je winkelwagentje weer leeg.

Een cookie plaatsen

Om een cookie te plaatsen in de browser van de bezoeker van je website, kan je de setcookie() functie gebruiken. Belangrijk is dat je deze functie gebruikt voordat er enige HTML naar de browser wordt gestuurd.

Het gebruik van de setcookie functie:
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)

De enige parameter die verplicht is bij de setcookie functie is $name, maar meestal wil je er meer gebruiken.

De parameters van de setcookie functie:

$name : de naam van de cookie.

$va1ue : de waarde van de cookie, default is een lege string.

$expire : de verloopdatum van de cookie, 0 betekent dat de cookie verdwijnt bij het sluiten van de browser, dit is de default, dit is dan een session-cookie, als je een datum meegeeft (max 3 jaar na de huidige datum), dat heet dit een persistente cookie.

$path : het pad op de server waar de cookie beschikbaar is, default is de directory van het PHP bestand dat de cookie plaatst en als je ‘/’ als pad kiest, dan is de cookie in alle directories beschikbaar, dit is meestal het handigste.

$domain : het domein waarvoor de cookie beschibaar is, default is de naam van de server die de cookie plaatst.

$secure : indien TRUE, dan is de cookie alleen beschikbaar indien verzonden via HTTPS, de default is FALSE.

$httponly : indien TRUE, dan is de cookie alleen via het HTTP-protocol beschikbaar en niet via Javascript.

Een cookie in de browser plaatsen:
$name = 'gebruiker'; $value = 'Jan'; $expire = strtotime('+1 year'); $path = '/'; setcookie($name, $value, $expire, $path);
Dit voobeeld plaatst een cookie die pas na een jaar verloopt met als naam 'gebruiker' met waarde 'Jan' en geldig op de hele website.

Een cookie uitlezen

De autoglobal $_COOKIE variabele kan je gebruiken om een cookie uit te lezen. Deze variabele is een associatieve array die bestaat uit naam-waarde koppels. Als de naam die je opvraagt geen waarde heeft, krijg je de NULL waarde terug.
Voorbeeld van het uitlezen van een cookie uit de browser:
$gebruiker = $_COOKIE['gebruiker'];
De variabele $gebruiker wordt gevuld met 'Jan' door het opvragen van de cookie uit het voorbeeld.

Een cookie verwijderen

Er is geen 'delete cookie functie'. Om een cookie te verwijderen, moet je de setcookie functie gebruiken met dezelfde parameters als bij het maken van de cookie, alleen de datum van $expire moet nu in het verleden liggen en de waarde van $value moet gezet worden op een lege string.

Voorbeeld van het verwijderen van een cookie uit de browser:
$expire = strtotime('-1 year'); setcookie('gebruiker','',$expire,'/');

Testen met en zonder cookies

Om je webapplicatie te testen, moet je dat niet alleen doen met een browser die cookies toestaat, maar ook met een browser waar cookies zijn uitgezet. Hoe je cookies uitzet in een browser verschilt per browser. Er zijn ook extensies voor browsers beschikbaar waarmee je cookies kan bekijken, verwijderen of zelfs aanpassen.

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ php ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.