Impostazione istantanea dei cookie in PHP
Per fare in modo che un cookie impostato appaia immediatamente
nell'array $_COOKIE, si può
utilizzare un trucco intelligente.
L'essenza del trucco è la seguente: prima impostiamo
il cookie utilizzando setcookie, poi
lo scriviamo manualmente nell'array $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // visualizzerà immediatamente 'eee'
?>
Per evitare che il cookie venga inviato al browser ogni volta, è possibile inserire la scrittura del cookie all'interno di una condizione. Se il cookie non esiste, lo impostiamo:
<?php
if (!isset($_COOKIE['str'])) { // se il cookie non esiste
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // visualizzerà 'eee'
?>
Analizziamo come funziona. Al primo accesso
alla pagina, entreremo in if,
imposteremo il cookie nel browser e lo scriveremo
immediatamente in $_COOKIE. Successivamente, tramite echo
verrà visualizzato il valore che abbiamo scritto manualmente.
Agli accessi successivi alla pagina, non entreremo
in if, ma in $_COOKIE sarà contenuto
il nostro cookie, già arrivato dal browser.
In questo modo, sia al primo accesso che a quelli
successivi, in $_COOKIE si troverà
il nostro cookie.
Provate la tecnica descritta.