Okamžitá inštalácia cookies v PHP
Aby sa novonastavené cookie okamžite
objavilo v poli $_COOKIE, môžeme
použiť šikovný trik.
Podstata triku je nasledovná: najprv nastavíme
cookie pomocou setcookie, a potom
ju manuálne zapíšeme do poľa $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // okamžite vypíše 'eee'
?>
Aby sa cookie neodosielala do prehliadača zakaždým, môžeme zápis cookie umiestniť do podmienky. Ak takéto cookie neexistuje, tak ho nastavíme:
<?php
if (!isset($_COOKIE['str'])) { // ak cookie neexistuje
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // vypíše 'eee'
?>
Poďme si vysvetliť, ako to funguje. Pri prvom
vstupe na stránku sa dostaneme do if,
nastavíme cookie v prehliadači a okamžite ju zapíšeme
do $_COOKIE. Potom cez echo
sa vypíše hodnota, ktorú sme manuálne nastavili.
Pri ďalších návštevách stránky sa nedostaneme
do if, ale v $_COOKIE bude obsiahnuté
naše cookie, ktoré prišlo z prehliadača.
Takto bude naše cookie prítomné v $_COOKIE
ako pri prvom vstupe, tak aj pri všetkých nasledujúcich.
Vyskúšajte si opísaný trik.