Maison >cadre php >YII >Raisons pour lesquelles le cookie yii2 ne peut pas être récupéré

Raisons pour lesquelles le cookie yii2 ne peut pas être récupéré

(*-*)浩
(*-*)浩original
2019-11-05 11:55:483217parcourir

Les cookies Yii2 sont principalement exploités via yiiwebRequest et yiiwebResponse

Raisons pour lesquelles le cookie yii2 ne peut pas être récupéré

via Yii::$app-> >getCookies()->add() Ajouter un cookie

Lire le cookie via Yii::$app->request->cookies (Apprentissage recommandé : tutoriel yii)

Les cookies créés dans js sont obtenus par défaut en utilisant la méthode Yii::$app->request->cookies->get('abc') dans yii2 , et ils peuvent être obtenus. en utilisant $_COOKIE['abc'], cela est dû aux raisons suivantes.

En regardant la ligne 1218 dans E:myYiiDemovendoryiisoftyi2webRequest.php, il n'est pas difficile de voir que Lorsque vous utilisez la méthode dans yii2 pour obtenir le cookie, la chaîne dans cookieValidationKey sera lue décrypter (le cookie est stocké. Il sera également utilisé parfois pour le cryptage).

Puisque js ne crypte pas le cookie, il ne peut pas être déchiffré ici, et naturellement le cookie ne peut pas être obtenu.

La solution est de définir activateCookieValidation sur false. Les opérations spécifiques sont les suivantes :

Yii::$app->request->enableCookieValidation = false;
Yii::$app->request->cookies->get('abc');

Rappel chaleureux :

.

N'oubliez pas de le restaurer après utilisation (Yii::$app->request->enableCookieValidation = true;), sinon cela peut affecter la logique suivante.

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