setcookie 不断更新,PHP

setcookie keeps updating, PHP

所以这是我的代码。我和老公都看了,不明白为什么日期和时间一直在更新。 if 语句第一次是 运行 它应该工作,但随后它应该停止。但事实并非如此。我如何获得停止时间并按原样显示而不是更新?

$firstVisitcounter = 0;
$firstVisit = $_COOKIE['firstVisit'];
if ($firstVisitcounter == 0){
    $firstVisitcounter = 1;
setcookie('firstVisit', date("d-m-Y H:i:s"),  time()+3600);
}

echo $firstVisit;
// Sets counter to 0
$firstVisitcounter = 0;
$firstVisit = $_COOKIE['firstVisit'];
if ($firstVisitcounter == 0){
    // Counter is always 0 (set above)
    // so this will always run
    $firstVisitcounter = 1;
    setcookie('firstVisit', date("d-m-Y H:i:s"),  time()+3600);
}

你可能想做类似的事情

if (empty($_COOKIE['firstVisit'])) {
    // First visit...
} else {
    // Returning visitor
}

$firstVisitcounter = 0; 是第一行,因此 if 将始终执行。您可能只想检查 cookie:

if(isset($_COOKIE['firstVisit'])) {
    $firstVisit = $_COOKIE['firstVisit'];
} else {
    $firstVisit = date("d-m-Y H:i:s");
    setcookie('firstVisit', $firstVisit,  time()+3600);
}

echo $firstVisit;

用户每次访问该页面,$firstVisitcounter将等于0。

尝试做:

if ($_COOKIE['firstVisit']=='') {

setcookie('firstVisit', date("d-m-Y H:i:s"),  time()+3600);

}

echo $_COOKIE['firstVisit'];

代替if ($_COOKIE['firstVisit']==''),您可以使用:

(!isset($_COOKIE['firstVisit'])