Установка Cook ie в javascript и чтение в PHP - PullRequest
0 голосов
/ 09 июля 2020

Итак, у меня есть повар ie, установленный через js, когда пользователь принимает всплывающее окно, он устанавливается с помощью следующей функции.

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie("accepted_popup", 'accepted_value', 1);

При проверке Cook ie в chrome инструменты разработчика действительно установлены.

Name           |Value          |Domain       |Path  |Expires                    |Size   |HttpOnly   |Secure |SameSite   |Priority
accepted_popup |accepted_value |example.com  |/     |2020-07-09T15:07:43.000Z   |11     |           |       |        |Medium

Я понимаю, что для того, чтобы ie повара вступил в силу на сервере, ему потребуется загрузка страницы. Поэтому я не хочу, чтобы всплывающее окно отображалось при следующей загрузке страницы, поэтому я проверяю Cook ie на сервере следующим образом.

<?php
    if(isset($_COOKIE['accepted_popup'])){
        doSomething();    //not showing popup
    }else{
        showPopup();      //showing popup
    }
?>

Что нового в этом вопросе, который еще не Ранее спрашивали, что приведенный выше код отлично работал на старом сервере, он перестал работать при переходе на AWS (если это могло быть причиной). Когда я делаю var_dump($_COOKIE); на сервере, повар ie accept_popup не отображается в нем.

Также я устанавливаю повар ie и получаю его в том же домене (в производстве), скажите "example.com" без субдомена или www.

На моем сайте разработки subdomain.example.com приведенный выше код работает нормально и ведет себя так, как ожидалось.

1 Ответ

0 голосов
/ 14 июля 2020

Так что проблема оказалась не в настройке повара ie в PHP а в AWS CloudFront. Если кто-то сталкивается с той же проблемой и имеет хостинг AWS, отметьте

CloudFront Distributions -> Behaviors -> Default (*) либо измените параметр «Forward Cookies», либо установите добавление ie имен повара в «Белый список файлов cookie», как показано на рисунке.

Aws установить файлы cookie из белого списка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...