setcookie不断更新,PHP

问题描述 投票:2回答:3

所以这是我的代码。我丈夫和我都看过它,我们不明白为什么日期和时间不断更新。第一次运行if语句它应该工作,但它应该停止。但事实并非如此。我如何获得停止时间,只是显示而不是更新?

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

echo $firstVisit;
php cookies setcookie
3个回答
2
投票

$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;

0
投票
// 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
}

-2
投票

每次用户访问页面时,$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']) 
© www.soinside.com 2019 - 2024. All rights reserved.