Omedelbar installation av kakor i PHP
För att en installerad kaka omedelbart
ska visas i arrayen $_COOKIE kan man
använda ett knepigt trick.
Trickets kärna är följande: först sätter vi
kakan med setcookie, och sedan
skriver vi in den manuellt i arrayen $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // kommer omedelbart att skriva ut 'eee'
?>
För att kakan inte ska skickas till webbläsaren varje gång, kan skrivningen av kakan göras inuti ett villkor. Om sådan kaka inte finns, så skriver vi in den:
<?php
if (!isset($_COOKIE['str'])) { // om kakan inte finns
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // skriver ut 'eee'
?>
Låt oss diskutera hur detta fungerar. Vid första
besöket på sidan kommer vi att hamna i if,
sätta kakan i webbläsaren och omedelbart skriva
in den i $_COOKIE. Sedan kommer via echo
vårt manuellt inskrivna värde att skrivas ut.
Vid efterföljande besök på sidan kommer vi inte att hamna
i if, men i $_COOKIE kommer att finnas
vår kaka, som redan har kommit från webbläsaren.
På så sätt kommer, både vid första besöket och vid
efterföljande, vår kaka att finnas i $_COOKIE.
Prova det beskrivna tricket.