как отключить cookie в PHP?

Мне нужно выяснить, как отключить этот файл cookie. Все, что я пробовал до сих пор, не удалось.

Это то, как я в настоящее время ее отключает, и, похоже, это не работает.

setcookie("user_id", $user_id, time() - 7200); 

Вот как я это установил:

 setcookie("user_id", $user_id, time() + 7200); 

У меня есть функция set_session_from_cookie() которая проверяет, установлен ли файл cookie, и если он установлен, он запускает новый сеанс с использованием файла cookie.

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

Причина, по которой у меня есть эта функция, – это то, что пользователь хочет, чтобы его запоминали после завершения сеанса, они могут перезапустить сеанс, вызвав куки.

 function set_session_from_cookie() { if (isset($_SESSION['user_id'])) { echo ''; } else { $_SESSION['user_id']=$_COOKIE['user_id']; } } 

Выйти:

 <?php require'core.php'; session_destroy(); setcookie("user_id", "", time() - 7200); header('Location:/social_learning/site_pages/starter-template.php'); 

Я установил свой файл cookie с помощью следующего кода:

 if ($rememberme == "on") { $user_id = mysql_result($query_run, 0, 'id'); setcookie("user_id", $user_id, time() + 7200); $_SESSION['user_id'] = $user_id; redirect('home_page.php'); } else { if ($rememberme == "") { echo 'ok'; $user_id = mysql_result($query_run, 0, 'id'); echo $user_id; $_SESSION['user_id'] = $user_id; redirect('home_page.php'); } } 

Как перезапустить сеанс с помощью сохраненного файла cookie, не используя функцию, которую я создал? Поскольку функция, похоже, заставляет пользователя больше не выходить из системы.

Solutions Collecting From Web of "как отключить cookie в PHP?"

Установите дату истечения срока действия файла cookie на время в прошлом (например, через одну секунду после эпохи ).

setcookie("yourCookie", "yourValue", 1);

Это приведет к истечению срока действия файла cookie.

1 используется вместо 0 , потому что 0 устанавливает, что cookie истекает в конце сеанса.

Решение этой проблемы состояло в том, что мне нужно было установить правильный путь, чтобы отключить файл cookie, поскольку я отключил его из другого файла, который я изначально установил.

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

 setcookie("user_id", $user_id, time() - 1, "/social_learning/site_pages"); 

Последний параметр – это путь. И это сработало.

Мой оригинальный setcookie выглядит так:

 setcookie("user_id", $user_id, time() + 7200, ""); 

Есть несколько проблем безопасности, связанных с вашим кодом, однако, чтобы ответить на ваш вопрос, чтобы отключить cookie в php, все, что вам нужно сделать, это установить время истечения срока в прошлом:

 setcookie("user_id", "", time()-10, "/"); 

«loginform.php» не является допустимым доменом, это может быть проблемой здесь.

используйте этот код

  setcookie("CookieName", "", time()-(60*60*24), "/"); 

работает каждый раз для меня на каждом сайте

Посмотрите руководство по php для получения информации о setcookie

http://php.net/manual/en/function.setcookie.php

Эти примечания должны объяснить процесс:

 bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) 

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

Поскольку установка файла cookie со значением FALSE будет пытаться удалить файл cookie, вы не должны использовать логические значения. Вместо этого используйте 0 для FALSE и 1 для TRUE.

В руководстве php вы можете удалить файл cookie, установив дату истечения срока в прошлом:

 setcookie("key","",time()-3600); 

В некоторых случаях вы должны указать путь и домен для аргументов.

Фактически, если вы назначите куки-файл с пустой строкой, он также будет отменен:

 setcookie("key","");