1

我有一个案例,如果页面已经被访问,我想利用 cookie 重定向到另一个页面。但是我希望在“第二次”而不是在用户第一次访问该页面时完成。我的猜测是我需要以某种方式将 Cookie 与 Counter 合并,但我不知道该怎么做。这是我到目前为止所拥有的。

if (isset($_COOKIE['beenhereonce'])) {
   $redirect_url = "Location: home.php";
} else {
    setcookie("beenhereonce",time()+120);
    $redirect_url = "Location: form.php";
}

我希望在用户第二次访问该页面时设置beehereonce。我该如何改进以实现我的目标?

4

3 回答 3

3

您可以使用 cookie 来保持访问量,然后控制您的代码。

// Checking if cookie exist
if( isset($_COOKIE['visits']) )
{
    // Checking if the user already visited the site
    if( $_COOKIE['visits'] >= 1 )
        $redirect_url = "Location: home.php";

    // Increasing cookie value
    setcookie("visits", $_COOKIE['visits'] + 1, time()+120);
}
else
{
    // First visit
    $redirect_url = "Location: form.php";
    setcookie("visits", 1, time()+120);
}
于 2012-11-03T19:04:51.887 回答
1

您可以设置 cookie 的值。该值将计算页面被访问的次数。然后,您可以通过以下方式进行检查:

if( isset($_COOKIE['cookiename']) )
{    
    if( $_COOKIE['cookiename[count]'] == '2' ) {
        $redirect_url = "...";
    }
    else {
        $redirect_url = "...";
        setcookie("cookiename[count]", $_COOKIE['cookiename[count]'] + 1, time()+X);
    }
}
else {
    setcookie("cookiename[count]", 1, time()+X);
}

X 是您的 cookie 过期的时间

于 2012-11-03T19:15:07.327 回答
0

你可以在顶部试试这个:

if (isset($_COOKIE['beenhereonce'])) {
   $redirect_url = "Location: home.php";
}

这在底部:

setcookie("beenhereonce",time()+120);

这样,cookie 在第一个页面加载结束时设置,并在第二个页面加载时检查。

于 2012-11-03T19:01:39.537 回答