第二次访问php中的页面更新Cookie

时间:2012-11-03 18:51:05

标签: php http cookies setcookie

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

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

我希望在用户访问该页面时第二次设置beehereonce。我怎样才能改善这一目标以实现我的目标?

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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过期的时间

答案 2 :(得分:0)

你可以在顶部试试这个:

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

这就在底部:

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

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