как удалить все cookie моего веб-сайта в php

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

setcookie("user",false);

Существует ли способ удалить cookie одного домена в PHP?

89
задан totymedli 29 August 2013 в 23:13
поделиться

4 ответа

PHP setcookie ()

Взято с этой страницы, это отключит все файлы cookie для вашего домена:

// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}

http://www.php.net/manual/en/function. setcookie.php # 73484

164
ответ дан 24 November 2019 в 07:12
поделиться
$past = time() - 3600;
foreach ( $_COOKIE as $key => $value )
{
    setcookie( $key, $value, $past, '/' );
}

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

40
ответ дан 24 November 2019 в 07:12
поделиться

убедитесь, что вы вызовите функцию setcookie до того, как какой-либо вывод произойдет на вашем сайте.

также, если ваши пользователи выходят из системы, вы также должны удалить / сделать недействительными их переменные сеанса.

3
ответ дан 24 November 2019 в 07:12
поделиться

Вы должны знать, что различные инструменты отслеживания, такие как Google Analytics, также используют файлы cookie в вашем домене, и вы не хотите их удалять, если хотите, чтобы верные данные в GA.

Единственное решение, с которым я мог работать, - это обнулить существующие файлы cookie. Мне не удалось удалить файлы cookie с клиента.

Итак, для выхода пользователя из системы я использую следующее:

setcookie("username", null, time()+$this->seconds, "/", $this->domain, 0);
setcookie("password", null, time()+$this->seconds, "/", $this->domain, 0);

Конечно, это не удаляет ВСЕ файлы cookie.

1
ответ дан 24 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

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