【问题标题】:How to store array in cookie by PHP?如何通过 PHP 将数组存储在 cookie 中?
【发布时间】:2019-11-29 17:07:41
【问题描述】:

我想在我的网站上建立一个简单的关注列表,让客户无需创建帐户即可收藏某些产品。

我读到这个主题是不可能直接但通过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】:
    if (!in_array($p, $a)) { // <- this is the right syntax
      $a[] = $p;
    } else {
      if (($key = array_search($p, a)) !== false) {
        unset($a[$key]);
      }
    }
    

    如果你想要它类型保存它是

    if (!in_array($p, $a, true))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多