为什么我的cookie不会被完全删除(%5B%5D)?

时间:2019-06-13 11:48:56

标签: php cookies

我已经创建了一个网站,人们可以在其中使用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;
}
?>

0 个答案:

没有答案