如果值不存在则在php中添加Cookie

时间:2015-05-04 09:35:16

标签: php cookies

  

如果值不存在,则附加值Cookie   我试图插入cookie逻辑很简单

     

检查值是否存在。如果没有在逗号中插入新值和旧值   分开的形式。我尝试了一些代码,但无法正确   结果    - 在这段代码中应该插入一个新值,这是一个hapening但没有得到旧值

$current_value = '';
 if(!isset($_COOKIE['blog_id_cookie'])){
     setcookie('blog_id_cookie', $id);
     $current_value[] = $_COOKIE['blog_id_cookie'];
 } else {
     $current_value = explode(',', $_COOKIE['blog_id_cookie']);
 } 
 if(!in_array($id, $current_value)){
     $current_value[] = $id;
     $cookie_name  = "blog_id_cookie";
     setcookie($cookie_name, implode(',', $current_value));
 }

>编辑2

 public function Details($id,$uid){
        $cookie_name = 'blog_id_cookie';

if (isset($_COOKIE[$cookie_name])) {
  $current_value = explode(',', $_COOKIE[$cookie_name]);
} else {
  $current_value = array();
}

if (!in_array($id, $current_value)) {
  $current_value[] = $id;
  setcookie($cookie_name, implode(',', $current_value));
}
}

1 个答案:

答案 0 :(得分:1)

首先,您要将$ current_value设置为字符串'',然后使用数组语法添加新元素。您应该在开头将$ current_value设置为array()。

此外,您在第二个setcookie()调用“$ current_valu”时输入错误,该调用应为“$ current_value”。

以下是代码的一些改进版本(在我看来)。虽然没有测试过这个。

$cookie_name = 'blog_id_cookie';

if (isset($_COOKIE[$cookie_name])) {
  $current_value = explode(',', $_COOKIE[$cookie_name]);
} else {
  $current_value = array();
}

if (!in_array($id, $current_value)) {
  $current_value[] = $id;
  setcookie($cookie_name, implode(',', $current_value));
}

编辑:由于原始帖子是使用函数定义更新的,因此这里有一个评论。您定义函数Details()但它不返回值。该功能应该做什么?也许应该return $current_value;return implode(',', $current_value);?此外,$ uid参数似乎未使用,因此可以将其删除。