O problema de configurar cookies em PHP
Ao gravar e ler cookies na mesma página,
há uma certa armadilha que nos espera.
O fato é que os cookies definidos via
setcookie só ficam disponíveis
no array $_COOKIE
após o recarregamento da página.
Vamos verificar isso. Vamos gravar via
setcookie algum cookie e imediatamente exibi-lo
na tela. Neste caso, ao acessar pela primeira vez
em $_COOKIE para o nosso cookie será null,
e ao atualizar a página - o valor do cookie:
<?php
setcookie('str', 'eee');
var_dump($_COOKIE['str']); // primeiro null, depois 'eee'
?>
Verifique o comportamento descrito dos cookies.