Я создал сайт, где люди могут добавлять и удалять из своего списка избранного, используя куки.
Кнопки работают просто отлично, но почему-то я не могу полностью удалить куки, используя кнопку удаления.
14B всегда остается на сервере со значением% 5B% 5D.
Первый cookie, который я добавляю, имеет размер до 47B (+ 33B), следующие всегда добавляют 36B.
Моя проблема в том, что я пытаюсь показать тизеры своих продуктов на главной странице.
Если что-то было забронировано, оно показывает 2 из этих продуктов ..
если еще ничего не было забронировано, он показывает 2 случайных продукта из базы данных. В этом случае, если я удаляю то, что у меня есть в списке закладок, на нем должны отображаться случайные продукты, но это не приводит к полному освобождению файла cookie.
Может кто-нибудь сказать мне, откуда взялись 14B остатка Cookie?
<?php
if(isset($_POST["add_to_bookmark"]))
{if(isset($_COOKIE["bookmark"]))
{// Adds to bookmark
//strip slashes so cookie can be read
$cookie_data = stripslashes($_COOKIE['bookmark']);
//transform cookie data into readable JSON and create an array
$bookmark_data = json_decode($cookie_data, true);
//will decode JSON string and store under this variable
//array_column(json_decode(stripslashes($_COOKIE['bookmark']), true), 'property_id');
}
else
{
//if Cookie didnt exist create a new empty array
$bookmark_data = array();
}
//returns ID Values of Array bookmarkdata and stores into propertyIDlist
$property_id_list = array_column($bookmark_data, 'property_id');
//checks if the property has already been bookmarked
if(in_array($_POST["hidden_id"], $property_id_list))
{
foreach($bookmark_data as $keys => $values)
{
if($bookmark_data[$keys]["property_id"] == $_POST["hidden_id"])
{
unset($bookmark_data[$keys]);//destroy the key's array
}
}
}
else{
$property_array = array(
'property_id' => $_POST["hidden_id"],
);
$bookmark_data[] = $property_array;
}
$property_data = json_encode($bookmark_data);
setcookie('bookmark', $property_data, time() + 3600 * 24 * 365, "/");
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
?>