$ _COOKIE如何检查已经设置好了?

时间:2016-07-07 10:23:26

标签: php cookies

我正在网页上唠叨。以下代码位于single.php中。

首先,如果有人打开一个页面/帖子+ 1,我每次都在计算。

<?php
//The cookie Besuche neeeds to be under 3
if (isset($_COOKIE['besuche'])){
  if ($_COOKIE['besuche'] >= 3){
    //If its more than 3, cookie resets to 1
    $besuche_anz = 1;
    $_COOKIE['besuche'] = $besuche_anz;
  }else{
    //If its less than 3. cookie + 1
    $_COOKIE['besuche'] = $_COOKIE['besuche'] + 1;
    $besuche_anz = $_COOKIE['besuche'];
  }
}else{
  //Cookie is not set
  $besuche_anz = 1;
}

//write cookie "besuche"
setcookie("besuche", $besuche_anz, time() + (86400 * 30), "/");

//Here starts my problem... I want so write three cookies: cookie_id1, cookie_id2, cookie_id3. But all cookies should be diffrent. So they sould not have the same ID --> get_the_id()

$cookie_value = get_the_id();
setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/");
//Only if $cookie_value has the same ID --> Do nothing, else setcookie 
if ($cookie_value == $_COOKIE["cookie_id1"]){}else{
  setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/");
}

//Only if $cookie_value has the same ID --> Do nothing, else setcookie 
if ($cookie_value == $_COOKIE["cookie_id1"] || $_COOKIE["cookie_id2"]){}else{
  setcookie("cookie_id".$besuche_anz, $cookie_value, time() + (86400 * 30), "/");
}

get_header(); ?>

为什么不起作用?

目标是,所以从index.php(主页)上的Cookie中选择3个ID,以选择上次查看的帖子。

如果我刷新一些帖子3次,我现在在家里的同一篇文章的3倍。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

试试这个,

    if(!isset($_COOKIE[$cookie_name]))
    {
        setcookie('cookie_name', $cookie_value, time() + (86400 * 30), "/");
    } 

我希望它会有所帮助。