Configuração Instantânea de Cookies em PHP
Para que um cookie configurado apareça imediatamente
no array $_COOKIE, você pode
usar um truque esperto.
A essência do truque é a seguinte: primeiro, configuramos
o cookie usando setcookie e, em seguida,
gravamos manualmente no array $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // exibirá 'eee' imediatamente
?>
Para evitar que o cookie seja enviado ao navegador toda vez, a gravação do cookie pode ser feita dentro de uma condição. Se o cookie não existir, nós o configuramos:
<?php
if (!isset($_COOKIE['str'])) { // se o cookie não existir
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // exibirá 'eee'
?>
Vamos discutir como isso funciona. Na primeira
vez que acessar a página, entraremos no if,
configuraremos o cookie no navegador e imediatamente o gravaremos
no $_COOKIE. Em seguida, através do echo,
será exibido o valor que gravamos manualmente.
Nos acessos subsequentes à página, não entraremos
no if, mas o $_COOKIE conterá
nosso cookie, que já veio do navegador.
Dessa forma, tanto no primeiro acesso quanto nos
seguintes, o $_COOKIE conterá
nosso cookie.
Experimente o truque descrito.