Удалить значение из cookie с помощью php - PullRequest
0 голосов
/ 14 января 2019

Я храню идентификаторы продуктов в cookie с php. (Это любимые продукты в интернет-магазине.)

Я добавил много продуктов в избранное, поэтому мой файл cookie выглядит следующим образом: 12,55,120,43

Что я знаю, что $_COOKIE[$cookie_name] это не массив. (проверено с помощью функции is_array)

Как я могу удалить идентификатор продукта из этого файла cookie? Я посылаю идентификатор, который я хочу удалить с помощью ajax в этот файл php:

    if(isset($_POST['id']))
{
    $id = intval($_POST['id']);

    $cookie_name = "kedvenc_termek";
    if(isset($_COOKIE[$cookie_name]))
    {
        echo $_COOKIE[$cookie_name];
    }

}

Ответы [ 3 ]

0 голосов
/ 14 января 2019

Сбросить ваш cookie:

unset($_COOKIE[$cookie_name]);

Установите ваш файл cookie равным нулю:

setcookie($cookie_name, null, -1, '/');
0 голосов
/ 14 января 2019

Если я правильно понимаю, у вас есть строка, сохраненная в куки, например 12,55,120,43, и вы хотите удалить одну из них, используя $_POST['id']? Поскольку это строка, я считаю, что лучшим вариантом является preg_replace (), это дает вам преимущество по сравнению с str_replace в том, что вы можете создать шаблон для удаления.

$id = $_POST['id'];
$cookie_name = "kedvenc_termek";
$_COOKIE[$cookie_name] = preg_replace("/\b(" . preg_quote($id) . ",)\b/", "", $_COOKIE[$cookie_name]);
echo $_COOKIE[$cookie_name];

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

Пример: https://3v4l.org/RQH4o

0 голосов
/ 14 января 2019

Это должно удалить или сделать недействительным cookie

// set the expiration date to one hour ago

setcookie($cookie_name, " ", time() - 3600);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...