Comprendre l'apparition retardée des valeurs de cookie dans $_COOKIE
Lors de la tentative de récupération de la valeur d'un cookie immédiatement après avoir invoqué la fonction setcookie() dans PHP, vous pouvez rencontrer un problème où $_COOKIE['uname'] reste indéfini. Cela se produit car les cookies ne sont pas instanciés tant que la réponse HTTP n'est pas transmise au client.
La raison de ce délai est que les cookies PHP reposent sur l'en-tête HTTP Set-Cookie, qui est inclus dans les en-têtes de réponse. Lorsque setcookie() est appelé, il ajoute l'en-tête Set-Cookie à la réponse, mais l'en-tête n'est pas réellement envoyé au client tant que l'exécution du script n'est pas terminée.
Cependant, vous pouvez surmonter cette limitation manuellement définir la valeur $_COOKIE['uname'] après avoir appelé setcookie() :
setcookie('uname', $uname, time() + 60 * 30); $_COOKIE['uname'] = $uname;
En définissant la valeur $_COOKIE manuellement, le cookie devient disponible pour utilisation dans votre script immédiatement. Cela vous permet d'accéder à la valeur du cookie sans avoir à vous fier à la prochaine demande du client.
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!