Sugiero que actives la notificacion de todos los errores, incluidos los notice y warnings, porque?... tengo la leve sospecha de que para crear cookies PHP envia
encabezados especificos al navegador y, al tener una salida HTML previa (completamente innecesaria y sin sentido) ya no se pueden crear las cookies.
Revisa el manual, por favor:
http://www.php.net/setcookie#refsect...etcookie-notes, aunque no es muy claro al respecto, si menciona lo de hacer uso de
ob_* para conservar la salida en buffer antes de crear las cookies.