est ce que tu bufferise ta page ? (utilise ob_start.. ?), car si tu l'utilise, le cookie n'est envoyé qu'a la fin lors du ob_end_flush.. donc si tu vas le lire netre temps, il n'existe pas !
EDIT : dans le manuel PHP:
Erreurs communes :
Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au
rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez
la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le
délai d'expiration est défini en utilisant le paramètre expire . Une façon simple de vérifier le
positionnement du cookie est d'utiliser print_r($_COOKIE); .