Проблемы удаляя cookie, не сбросят

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

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

или

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

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

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

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

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

23
задан Community 23 May 2017 в 12:33
поделиться

6 ответов

В руководстве указано :

Файлы cookie должны быть удалены с теми же параметрами, с которыми они были установлены. Если аргумент значения является пустой строкой или FALSE , а все остальные аргументы соответствуют предыдущему вызову setcookie, то cookie с указанным именем будет удален с удаленного клиента. Внутренне это достигается путем установки значения «удалено» и срока действия на один год в прошлом.

Также убедитесь, что $ path указан правильно - также при его удалении . Например, если файл cookie был указан в подкаталоге, вы не сможете удалить его ни из родительского, ни из дочернего каталогов (или из обоих).

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

55
ответ дан 29 November 2019 в 00:49
поделиться

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

Это мой код

setcookie("token", "", time() - 36000, "/");
0
ответ дан 29 November 2019 в 00:49
поделиться

Вы проверяли, отправляет ли ваш скрипт уже свои HTTP-заголовки?

if (headers_sent()) {
  trigger_error("Cant change cookies", E_USER_NOTICE);
}
2
ответ дан 29 November 2019 в 00:49
поделиться

Ок, я действительно не понимаю, но теперь это работает. Магический код:

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

Разве я уже не пробовал это??! Неважно, теперь работает. Спасибо за помощь, люди!

10
ответ дан 29 November 2019 в 00:49
поделиться

Я пробовал использовать

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

, и на моем сервере с Apache / PHP5 он очистил cookie (по крайней мере, var_dump ($ _ COOKIE) показал пустой массив).

2
ответ дан 29 November 2019 в 00:49
поделиться

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

setcookie("name", 'n', 1);
0
ответ дан 29 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: