ホームページ >PHPフレームワーク >YII >yii2 Cookie を取得できない理由

yii2 Cookie を取得できない理由

(*-*)浩
(*-*)浩オリジナル
2019-11-05 11:55:483216ブラウズ

Yii2 の Cookie は主に yii\web\Request および yii\web\Response を通じて操作されます

yii2 Cookie を取得できない理由

#Pass \Yii: :$app->response->getCookies()->add()Add Cookie

\Yii::$app->request->cookies を通じて Cookie を読み取ります (推奨学習: yii チュートリアル )

js で作成された Cookie は、デフォルトでメソッド Yii::$app->request->cookies- >Get('abc') を取得できませんこれは以下の理由によるものですが、$_COOKIE['abc'] を使用することで取得できます。

E:\myYiiDemo\vendor\yiisoft\yii2\web\Request.php の 1218 行目を見ると、yii2 のメソッドを使用してCookie が読み取られます。cookieValidationKey の文字列を使用して復号化します (Cookie を保存するときに暗号化するためにも使用されます)。

jsはCookieを暗号化していないため、ここでは復号化できず、当然Cookieは取得できません。

#解決策は、enableCookieValidation を false に設定することです。具体的な操作は次のとおりです:

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

注意事項:

使用後は忘れずに復元してください (Yii::$app->request->enableCookieValidation = true;)。そうしないと、次のロジックに影響を与える可能性があります。

以上がyii2 Cookie を取得できない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。