Øjeblikkelig indstilling af cookies i PHP
For at en indstillet cookie straks
skal vises i arrayet $_COOKIE kan man
bruge et smart trick.
Essensen af tricket er følgende: først indstiller vi
cookien ved hjælp af setcookie, og derefter
skriver vi den manuelt ind i arrayet $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // vil straks udskrive 'eee'
?>
For at undgå at cookien sendes til browseren hver gang, kan indstillingen af cookien placeres inde i en betingelse. Hvis cookien ikke findes, indstiller vi den:
<?php
if (!isset($_COOKIE['str'])) { // hvis cookien ikke findes
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // udskriver 'eee'
?>
Lad os diskutere, hvordan dette virker. Ved første
besøg på siden kommer vi ind i if,
indstiller cookien i browseren og skriver den straks
ind i $_COOKIE. Derefter vil værdien, vi har skrevet manuelt,
blive vist via echo.
Ved efterfølgende besøg på siden kommer vi ikke ind
i if, men i $_COOKIE vil vores cookie være til stede,
som allerede er modtaget fra browseren.
På denne måde, både ved første besøg og ved
efterfølgende, vil vores cookie være til stede i $_COOKIE.
Prøv den beskrevne metode.