如何通过PHP在cookie中存储数组?

问题描述 投票:0回答:1

在我的网站上,我希望建立一个简单的监视列表,以使客户无需创建帐户即可收藏某些产品。

我读过这个主题,它不可能直接通过base64编码存储到cookie。

此脚本通过单击按钮切换。如果产品已经在监视列表中,则将其删除;如果该产品不在监视列表中,则将其添加。

这是我尝试过的:

$p = "123456789"; // some product id    

$a = isset($_COOKIE['fav']) ? unserialize(base64_decode($_COOKIE['fav'])) : [] ;

if($p!==in_array($a)){
  $a[] = $p;
} else {
  if(($key=array_search($p,a))!==false){
    unset($a[$key]);
  }
}

$b = base64_encode(serialize($a));
setcookie('fav',$b,time()+3600*24,'/');

但是cookie没有设置。

php cookies base64 setcookie
1个回答
0
投票
if (!in_array($p, $a)) { // <- this is the right syntax
  $a[] = $p;
} else {
  if (($key = array_search($p, a)) !== false) {
    unset($a[$key]);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.