Onmiddellijke installatie van cookies in PHP
Om een zojuist geïnstalleerde cookie direct
in de array $_COOKIE te laten
verschijnen, kun je
een slimme truc gebruiken.
De essentie van de truc is als volgt: eerst stellen we
de cookie in met setcookie, en daarna
schrijven we deze handmatig in de array $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // geeft direct 'eee' weer
?>
Om te voorkomen dat de cookie elke keer naar de browser wordt gestuurd, kun je het schrijven van de cookie binnen een voorwaarde plaatsen. Als zo'n cookie niet bestaat, dan schrijven we hem:
<?php
if (!isset($_COOKIE['str'])) { // als de cookie niet bestaat
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // geeft 'eee' weer
?>
Laten we bespreken hoe dit werkt. Bij het eerste
bezoek aan de pagina komen we in de if,
stellen we de cookie in de browser in en schrijven we hem
direct in $_COOKIE. Vervolgens wordt
via echo
de door ons handmatig geschreven waarde weergegeven.
Bij volgende bezoeken aan de pagina komen we niet
in de if, maar in $_COOKIE zal onze
cookie zitten, die al vanuit de browser is aangekomen.
Op deze manier zal zowel bij het eerste bezoek als bij
latere bezoeken in $_COOKIE onze cookie
aanwezig zijn.
Probeer de beschreven truc uit.