tôi đặt một cookie trong web/js/site.js:Yii2: Làm thế nào để đọc một cookie, được thiết lập bởi JavaScript
$.cookie("sidebar", "hidden", { path: '/' });
tôi đọc cookie với PHP:
$sidebar_toggle_state = $_COOKIE['sidebar'];
Có thể sử dụng Thành phần Yêu cầu Yii để đọc các cookie đó không? Các mã sau đây không đọc cookie:
$sidebar_toggle_state = Yii::$app->request()->cookies()->getValue('sidebar', '');
Xem: http://www.yiiframework.com/doc-2.0/guide-runtime-sessions-cookies.html#cookies
Khi tôi đặt một cookie mới thông qua phần đáp ứng Yii:
Yii::$app->response->cookies->add(new yii\web\Cookie([
'name' => 'sidebar',
'value' => 'hidden',
]));
Sau đó, giá trị của vẻ Cookie như thế này (vì cookie được bảo vệ):
3976220a3c8e46bb641aef1da3accfb1652bffd5bb9de503a9d6882e8a69f6f9a%3A2%3A%7Bi%3A0%3Bs%3A7%3A%22sidebar%22%3Bi%3A1%3Bs%3A6%3A%22hidden%22%3B%7D
cooki như vậy e có thể đọc thành phần yêu cầu Yii. Nhưng nó có thể đọc các cookie không được bảo vệ không?
Hoặc, có thể đặt các cookie được bảo vệ Yii bằng JavasSript/jQuery (không sử dụng AJAX) không?
Có API JavaScript, cho phép đọc cookie được Yii2 bảo vệ: https://github.com/Requilence/yii2-js-cookie Nhưng API không thể đặt cookie, vì "Bạn không thể đặt cookie được bảo vệ trong JS vì thuật toán ký tên sẽ không an toàn ở phía máy khách ". –
đã thử i \ Yii này :: $ app-> getRequest() -> getCookies() -> has ('cookie_name'); để kiểm tra –
@NuriddinRashidov Có, tôi đã thử: if (Yii :: $ app-> getRequest() -> getCookies() -> có ('sidebar')) {... (trong một số biến thể). Và tôi cũng đã cố gắng xem tất cả cookie bằng var_dump (Yii :: $ app-> request-> cookies); Nhưng không có kết quả tích cực. –