Проблемы с удалением куки, не будут сброшены - PullRequest
22 голосов
/ 18 мая 2010

Я попытался найти в руководстве по php и в интернете, как удалить куки, и я попробовал это точно так же, как они все говорят:

setcookie("name", '', 1);

или

setcookie("name", '', time()-3600);

Но когда я проверяю куки в диалоге куки в Firefox, он все еще там с тем же значением. Я установил этот cookie, используя следующую строку:

setcookie("name", $value, time() + 259200, $path);

Я нашел этот вопрос по stackoverflow: , но ни один из ответов не решил проблему. Я также попытался ввести все параметры, как сказал автор, но это не дало результата.

Кто-нибудь видит проблему?

Ответы [ 17 ]

0 голосов
/ 29 мая 2013

У меня была похожая проблема.

Я обнаружил, что по какой-то причине вывод чего-то из logout.php фактически удалил cookie:

echo '{}';
setcookie('username', '', time()-3600, '/');
0 голосов
/ 16 ноября 2012

Я рекомендую использовать

ob_start();

у первых л

0 голосов
/ 18 мая 2010

И со мной тоже случается один из десяти раз. Я думаю, это проблема с тем, как мы кодируем.

Это мой код

setcookie("token", "", time() - 36000, "/");
0 голосов
/ 14 декабря 2016
var remember = $.cookie('auto_login');
if (remember == 'true') {
    var username = $.cookie('username');
    var password = $.cookie('password');
    $('#username').val(username);
    $('#password').val(password);
}

$('#logsub').click(function (event) {
    if ($('#auto_login').is(':checked')) {
        var username = $('#username').val();
        var password = $('#password').val();
        // set cookies to expire in 14 days
        $.cookie('username', username, {expires: 14});
        $.cookie('password', password, {expires: 14});
        $.cookie('auto_login', true, {expires: 14});
    } else {
        // reset cookies
        $.cookie('username', null);
        $.cookie('password', null);
        $.cookie('auto_login', null);
    }
});
0 голосов
/ 18 июня 2014

Я удивлен, что никто еще не опубликовал это, но у меня это прекрасно работает:

СОЗДАТЬ или ИЗМЕНИТЬ cookie по имени:

$_COOKIE['myCookieName'] = 'I can be changed to whatever u want';

УДАЛИТЬ куки по имени:

unset($_COOKIE['myCookieName']);
0 голосов
/ 12 апреля 2019

Точно так же, как сказано в правильном ответе (я хочу, чтобы он отправил обновленный), для сброса необходим каждый параметр, используемый для установки cookie, даже secure и httponly

Установить

setcookie("name_cookie", $name_value, 0, '/', $domain, false, true);

Unset

setcookie("name_cookie", '', time()-1000, '/', $domain, false, true);
0 голосов
/ 18 мая 2010

Вы пытались установить время для небольшого значения и использовать значение для cookie?

setcookie("name", 'n', 1);
...