Als je al een tijdje bezig bent met PHP, wil je na verloop van tijd ook variabelen op kunnen slaan die je ook in andere bestanden kan gebruiken. Hier zijn meerdere manieren voor, een van deze manieren is mer cookies. Hoe dit werkt, ga ik in deze tutorial bespreken.
Wat zijn cookies?
Cookies zijn variabelen die in de vorm van een bestandje worden opgeslagen op de cliëntcomputer, dus bij de persoon die de website opent, en niet op de server. Cookies zijn bruikbaar als je bijvoorbeeld een accountsysteem wilt maken waarbij een gebruiker automatisch uitgelogd wordt na een bepaald aantal minuten, omdat je ook de "houdbaarheidsdatum" van de cookie kan instellen.
Hoe maak ik een cookie?
Vrij simpel, voor het maken van een cookie heb je de volgende code:
$houdbaarheid: Tot wanneer de cookie geldig is (werkt met Unix-timestamp)
$pad: Voor welke map (inclusief submappen) de cookie geldig is (zet je dit bijvoorbeeld op /Random/, geldt dit voor /Random/, /Random/Signature/, /Random/Signature/Map/, /Random/Map/, etc).
$domein: Voor welk domein de cookie geldig is. Zet je 'm op .mijndomein.nl, geldt ie voor alle domeinen. Ze je 'm op david.mijndomein.nl, geldt hij alleen voor dat domein.
$beveiligd: Zet je dit op true, wordt de cookie alleen verzonden over een beveiligde (https) verbinding
$httponly: Zet je dit op true, is de cookie alleen geldig voor het http-protocol, en kan hij dus niet worden benaderd vanuit andere talen, bijvoorbeeld JavaScript.
LET OP: $naam is de enige parameter uit dit rijtje welke verplicht is!
Wat is het verschil tussen het maken van een normale variabele en het maken van een cookievariabele?
Dit valt het beste uit te leggen door het script gewoon te plaatsen, hieronder zie je 4 scripts. Twee voor de gewone variabelen, en twee voor cookievariabelen. Eentje is voor een string, andere voor een integer (getal).
Ik hoop dat dit tot zover duidelijk is. Nu gaan we door met de volgende stap.
Een cookie maken welke een uur geldig is
De "houdbaarheidsdatum" van een cookie werkt met de Unix-timestamp, het aantal seconden wat verstreken is sinds 1 Januari 1970, 00:00 GMT. Wil je dus een cookie maken maken welke een uur geldig is, doe je dat op de volgende manier:
<?php
$tijd = time(); // unix timestamp wat nu geldig is
$overeenuur = $tijd + 60*60; // nu, plus 60 keer 60 seconden ( = 1 uur)
setcookie("string", "inhoud", $overeenuur); // cookie instellen
?>
De houdbaarheidsdatum kan je dus berekenen door de functie time() te gebruiken, en daar het aantal seconden wat de cookie geldig moet zijn bij op te tellen. Moet je cookie een week geldig blijven, gebruik je dus deze code:
time() + 7 * 24 * 60 * 60
7 dagen, 24 uur, 60 minuten, 60 seconden. Lastig uit te leggen, maar simpel te begrijpen, hoop ik.
De andere parameters van de setcookie() functie valt verder niet heel veel over uit te leggen, dit staat hierboven allemaal al.
Een cookievariabele oproepen
Okee, heel leuk en aardig allemaal, maar hoe gebruik ik deze variabelen nou? Ik weet niet of je ooit hebt gewerkt met superglobale arrays als $_POST en $_GET, maar er is ook zo'n variabele voor cookies. Niet geheel onverwachts heet deze $_COOKIE. Heb je een cookie met setcookie() dus de naam "string" gegeven, roep je deze op de volgende manier op:
<?php
echo $_COOKIE['string'];
?>
Vrij simpel dus.
Kennis in de praktijk brengen
Okee, ik ga ervan uit dat je nu de basisbeginselen kent. Daarom ga ik je een opdracht geven. Maak een script die het volgende doet:
Naam van de cookie is David22
De inhoud van de cookie is een getal, 22
De cookie verloopt in 22 uur
De cookie is geldig voor de map /22David/ van het domein david.mijndomein.nl
De cookie is niet alleen geldig voor HTTP
De cookie hoeft niet beveiligd verzonden te worden
Tutorial
Cookies
Inleiding
Als je al een tijdje bezig bent met PHP, wil je na verloop van tijd ook variabelen op kunnen slaan die je ook in andere bestanden kan gebruiken. Hier zijn meerdere manieren voor, een van deze manieren is mer cookies. Hoe dit werkt, ga ik in deze tutorial bespreken.
Wat zijn cookies?
Cookies zijn variabelen die in de vorm van een bestandje worden opgeslagen op de cliëntcomputer, dus bij de persoon die de website opent, en niet op de server. Cookies zijn bruikbaar als je bijvoorbeeld een accountsysteem wilt maken waarbij een gebruiker automatisch uitgelogd wordt na een bepaald aantal minuten, omdat je ook de "houdbaarheidsdatum" van de cookie kan instellen.
Hoe maak ik een cookie?
Vrij simpel, voor het maken van een cookie heb je de volgende code:
Wat houd dit in?
$naam: Naam van de cookie
$waarde: Inhoud van de cookie-variabele
$houdbaarheid: Tot wanneer de cookie geldig is (werkt met Unix-timestamp)
$pad: Voor welke map (inclusief submappen) de cookie geldig is (zet je dit bijvoorbeeld op /Random/, geldt dit voor /Random/, /Random/Signature/, /Random/Signature/Map/, /Random/Map/, etc).
$domein: Voor welk domein de cookie geldig is. Zet je 'm op .mijndomein.nl, geldt ie voor alle domeinen. Ze je 'm op david.mijndomein.nl, geldt hij alleen voor dat domein.
$beveiligd: Zet je dit op true, wordt de cookie alleen verzonden over een beveiligde (https) verbinding
$httponly: Zet je dit op true, is de cookie alleen geldig voor het http-protocol, en kan hij dus niet worden benaderd vanuit andere talen, bijvoorbeeld JavaScript.
LET OP: $naam is de enige parameter uit dit rijtje welke verplicht is!
Wat is het verschil tussen het maken van een normale variabele en het maken van een cookievariabele?
Dit valt het beste uit te leggen door het script gewoon te plaatsen, hieronder zie je 4 scripts. Twee voor de gewone variabelen, en twee voor cookievariabelen. Eentje is voor een string, andere voor een integer (getal).
Ik hoop dat dit tot zover duidelijk is. Nu gaan we door met de volgende stap.
Een cookie maken welke een uur geldig is
De "houdbaarheidsdatum" van een cookie werkt met de Unix-timestamp, het aantal seconden wat verstreken is sinds 1 Januari 1970, 00:00 GMT. Wil je dus een cookie maken maken welke een uur geldig is, doe je dat op de volgende manier:
Of, in een verkorte versie:
De houdbaarheidsdatum kan je dus berekenen door de functie time() te gebruiken, en daar het aantal seconden wat de cookie geldig moet zijn bij op te tellen. Moet je cookie een week geldig blijven, gebruik je dus deze code:
7 dagen, 24 uur, 60 minuten, 60 seconden. Lastig uit te leggen, maar simpel te begrijpen, hoop ik.
De andere parameters van de setcookie() functie valt verder niet heel veel over uit te leggen, dit staat hierboven allemaal al.
Een cookievariabele oproepen
Okee, heel leuk en aardig allemaal, maar hoe gebruik ik deze variabelen nou? Ik weet niet of je ooit hebt gewerkt met superglobale arrays als $_POST en $_GET, maar er is ook zo'n variabele voor cookies. Niet geheel onverwachts heet deze $_COOKIE. Heb je een cookie met setcookie() dus de naam "string" gegeven, roep je deze op de volgende manier op:
Vrij simpel dus.
Kennis in de praktijk brengen
Okee, ik ga ervan uit dat je nu de basisbeginselen kent. Daarom ga ik je een opdracht geven. Maak een script die het volgende doet:
Het script komt er zo uit te zien:
Ik hoop dat de basis van cookies nu een beetje duidelijk zijn, maar mag dit niet zo zijn kan je natuurlijk altijd vragen stellen!
David22