Instalación instantánea de cookies en PHP
Para que una cookie instalada aparezca inmediatamente
en el array $_COOKIE, se puede
utilizar un truco ingenioso.
La esencia del truco es la siguiente: primero establecemos
la cookie usando setcookie, y luego
la escribimos manualmente en el array $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // mostrará 'eee' inmediatamente
?>
Para evitar que la cookie se envíe al navegador cada vez, la escritura de la cookie se puede hacer dentro de una condición. Si dicha cookie no existe, la establecemos:
<?php
if (!isset($_COOKIE['str'])) { // si la cookie no existe
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // mostrará 'eee'
?>
Analicemos cómo funciona esto. En la primera
visita a la página, entraremos en el if,
estableceremos la cookie en el navegador e inmediatamente la escribiremos
en $_COOKIE. Luego, a través de echo
se mostrará el valor que escribimos manualmente.
En las siguientes visitas a la página, no entraremos
en el if, pero en $_COOKIE estará contenida
nuestra cookie, que ya llegó desde el navegador.
De esta manera, tanto en la primera visita como en
las siguientes, en $_COOKIE se encontrará
nuestra cookie.
Pruebe el truco descrito.