我已经创建了一个网站,人们可以在其中使用Cookie添加和删除自己喜欢的列表。
按钮可以正常工作,但是以某种方式我无法使用删除按钮完全删除cookie。
14B始终保留在服务器上,其值为%5B%5D。 我添加的第一个Cookie的大小最大为47B(+ 33B),接下来的Cookie始终为36B。
我的问题是我试图在首页上展示我的产品的预告片。 如果已经预订了一些东西,它会显示其中2个产品。 如果尚未预订任何东西,它将显示数据库中的2个随机产品。在这种情况下,如果我删除书签列表中的内容,它将显示随机产品,但不会导致Cookie不能完全清空。
有人可以告诉我剩余Cookie的14B来源吗?
<?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;
}
?>