Я хочу удалить / удалить существующий файл cookie с помощью этого:
setcookie ("user", "", time()-1); unset($user);
Но файлы cookie не могут быть удалены или отменены. Так в чем проблема?
вы можете отключить файлы cookie таким образом, что только -1 может не работать
попробуй это
setcookie ("user", "", time() - 3600);
При удалении файла cookie вы должны убедиться, что дата истечения срока действия в прошлом.
Пример удаления:
// set the expiration date to one hour ago setcookie("user", "", time()-3600);
Ничего – этот код выглядит хорошо для меня.
Цитирование документов:
При удалении файла cookie вы должны убедиться, что дата истечения срока в прошлом, чтобы запустить механизм удаления в вашем браузере.
setcookie ("TestCookie", "", time() - 3600);
Вы можете указать время, которое больше в прошлом, чтобы избежать проблем с временем компьютера, которое может быть немного отключено.
Кроме того, в некоторых случаях полезно фактически $_COOKIE['TestCookie']
.
// ДОЛЖЕН предоставлять корневой путь или какой-либо конкретный путь к файлу cookie
//SET COOKIE setcookie ("user", "", time() + 3600 , '/'); //UNSET COOKIE setcookie ("user", "", time()-100 , '/' ); // past time
Как уже было сказано – при удалении файла cookie вы должны убедиться, что дата истечения срока действия в прошлом.
НО вы также должны использовать один и тот же путь и даже домен для удаления, который вы использовали для создания файлов cookie, поэтому, если создать такой файл cookie
setcookie ("user", "John", time()+7200, '/', 'mydomain.com');
для удаления этого файла cookie используйте этот код
setcookie ("user", "", time()-3600, '/', 'mydomain.com');
а также лучше использовать конкретную дату в прошлом вместо времени () – 3600
setcookie ("user", "", time() - 3600); //will reset cookie(client,browser) unset($_COOKIE["user"]); // will destroy cookie(server)
сsetcookie ("user", "", time() - 3600); //will reset cookie(client,browser) unset($_COOKIE["user"]); // will destroy cookie(server)