Okamžité nastavení cookies v PHP
Pro to, aby se nastavená cookie okamžitě
objevila v poli $_COOKIE, lze
použít chytrý trik.
Podstata triku je následující: nejprve nastavíme
cookie pomocí setcookie, a poté
ji ručně zapíšeme do pole $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // okamžitě vypíše 'eee'
?>
Aby se cookie pokaždé neodesílala do prohlížeče, lze zápis cookie provést uvnitř podmínky. Pokud taková cookie neexistuje, zapíšeme ji:
<?php
if (!isset($_COOKIE['str'])) { // pokud cookie neexistuje
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // vypíše 'eee'
?>
Pojďme si vysvětlit, jak to funguje. Při první
návštěvě stránky se dostaneme do if,
nastavíme cookie v prohlížeči a okamžitě zapíšeme
do $_COOKIE. Následně se pomocí echo
vypíše hodnota, kterou jsme ručně zapsali.
Při dalších návštěvách stránky se nedostaneme
do if, ale v $_COOKIE bude obsažena
naše cookie, která již přišla z prohlížeče.
Tímto způsobem bude při první návštěvě i při
následujících v $_COOKIE naše cookie.
Vyzkoušejte popsaný trik.