PHP: setcookie no tiene efecto

<?php
    setcookie("name", "abc");
    echo $_COOKIE["name"];
?>

Cuando recargo esta página, no muestra nada en la pantalla. ¿Por qué?

Pero vuelva a cargar, se muestra abc.

¿¿POR QUÉ??

preguntado el 22 de mayo de 12 a las 15:05

Entonces, ¿aparece esto primero la segunda vez que carga la página o la tercera vez? -

2 Respuestas

Cuando configura una cookie, no está disponible hasta que se carga la siguiente página.

Esto está muy claramente establecido en la documentación, que debes leer.

Una vez configuradas las cookies, se puede acceder a ellas en carga de la página siguiente con las matrices $ _COOKIE o $ HTTP_COOKIE_VARS. Tenga en cuenta que superglobales como $ _COOKIE están disponibles en PHP 4.1.0. Los valores de las cookies también existen en $ _REQUEST.

y

Las cookies no serán visibles hasta la próxima carga de una página en la que la cookie debería estar visible. Para probar si una cookie se configuró correctamente, verifique la cookie en la siguiente página de carga antes de que caduque. El tiempo de expiración se establece mediante el parámetro de expiración. Una buena forma de depurar la existencia de cookies es simplemente llamando a print_r ($ _ COOKIE) ;.

contestado el 22 de mayo de 12 a las 15:05

¿Está relacionado con algo como el encabezado de solicitud http? - sc1013

@Steven Las cookies se envían al navegador en la respuesta. $_COOKIE se establece desde la solicitud. Es por eso que toma 2 pasos. - Mike B

Las cookies se envían como parte de la respuesta HTTP de su página, por lo que no existen hasta después de se envía su respuesta. Es por eso que tienes que recargar la página para ver el valor.

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.