Как установить / изменить cookie через php? - PullRequest
1 голос
/ 17 мая 2019

Я использую этот код, чтобы изменить значение cookie в php или установить его, если он еще не существует:

setcookie('maintenance_site_contact_failed', '1', time()+3600, '/', 'entwicklung');

И я использую этот код для установки cookie в javascript:

setCookie('maintenance_site_contact_failed', '0', 1);

function setCookie(name,value,days)
{
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}

Но, как вы можете видеть на следующем скриншоте, cookie создается второй раз, а не заменяет существующий, но дубликат имеет точку в имени домена.

cookies

Почему точка и почему файл cookie создается дважды?


Что я пытаюсь: Если пользователь отправляет мою форму и проверка не проходит на сервере, то Я устанавливаю cookie maintenance_site_contact_failed в сценарии PHP на 1, чтобы клиент знал, что произошла ошибка.

Затем javascript проверяет значение cookie, а если значение cookie равно 1, то он показывает ошибку и сбрасывает значение cookie в 0.

1 Ответ

1 голос
/ 17 мая 2019

Похоже, что ваш cookie доступен только для разных поддоменов, потому что в php-эквиваленте вы присваиваете значение для параметра domain . Попробуйте сделать то же самое внутри функции Javascript setCookie:

document.cookie = name + "=" + (value || "") + expires + "; path=/; domain=entwicklung";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...