1

我是第一次尝试使用 cookie,但我认为我不理解这一点,或者我的代码正在做一些循环。有人介意帮助我回到正确的道路上吗?

我一直在重新阅读 php.net 帮助,但我认为我现在的想法很混乱:/

$currentTime = strtotime("now");
$popup_exp = strtotime("+1 hour");

if (!isset($_COOKIE['popup_timer'])) : //does cookie exists? if not, make it
    setcookie("popup_timer", $currentTime);
endif;
if( ($popup_exp > $_COOKIE['popup_timer']) ): 
    //show my popup
endif;
4

2 回答 2

3

没有让你的代码安静下来,但正如你评论的那样

if(!isset($_COOKIE['popup_timer'])) {
   //Show popup
   setcookie("popup_timer", '', time()+3600);
}

上面只有在$_COOKIE没有设置的情况下才会弹出一个弹出窗口,一旦它抛出弹出窗口,就会设置一个 cookie 并将过期设置为一个小时。

于 2013-10-01T20:16:36.527 回答
1

您应该将当前时间与 cookie 中存储的时间进行比较,如下所示

$currentTime = strtotime('now');

if (!isset($_COOKIE['popup_timer'])) {
    setcookie('popup_timer', $currentTime);
} else {
    if ($currentTime > $_COOKIE['popup_timer'] + 60 * 60) {
        // If an hour has passed since cookie creation
        // show your popup
    }
}
于 2013-10-01T20:19:51.877 回答