Maison >développement back-end >tutoriel php >Pourquoi $_COOKIE ne reflète-t-il pas immédiatement `setcookie()` et comment puis-je y accéder instantanément ?

Pourquoi $_COOKIE ne reflète-t-il pas immédiatement `setcookie()` et comment puis-je y accéder instantanément ?

DDD
DDDoriginal
2024-12-11 07:22:18163parcourir

Why Doesn't $_COOKIE Reflect `setcookie()` Immediately, and How Can I Access It Instantly?

Accès à la valeur du cookie après l'invocation de setcookie()

Lorsque vous tentez d'accéder à la valeur d'un cookie à l'aide de $_COOKIE immédiatement après avoir appelé setcookie() fonction, il peut sembler que $_COOKIE['uname'] n'est pas défini. Cela se produit car les cookies ne sont pas immédiatement disponibles après avoir été définis.

La raison en est que le cookie n'est pas défini tant que la réponse n'est pas renvoyée au client. PHP n'a pas accès au cookie jusqu'à ce que la prochaine demande soit faite par le client.

Accès immédiat au cookie

Pour contourner ce problème, vous pouvez définir manuellement la valeur du cookie dans $_COOKIE après avoir appelé setcookie(). Cela vous permet d'accéder immédiatement à la valeur du cookie dans le même script :

setcookie('uname', $uname, time() + 60 * 30);
$_COOKIE['uname'] = $uname;

En définissant le cookie à la fois dans le navigateur et manuellement dans $_COOKIE, vous pouvez accéder à sa valeur rapidement après l'avoir défini à l'aide de setcookie(). .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn