如果未设置指定的cookie,则应设置Cookie,但代码始终会创建新的Cookie

时间:2016-07-12 17:57:08

标签: php cookies setcookie

我想要一个第一个验证$_COOKIE['location']已设置的脚本。如果未设置$_COOKIE['location'],我希望将入口网址保存到$_COOKIE['EntryURL']并将$_COOKIE['location']设置为' TRANS'同时重定向用户输入他们的zip或手动选择他们的位置。

所以我生成了以下PHP:

if(!isset($_COOKIE['location'])) {

    $EntryURL = $_SERVER['REQUEST_URI'];
    if($EntryURL == '/') { 
        $EntryURL = '/index.php?pg=Home'; 
    }

    setcookie('EntryURL', $EntryURL);
    setcookie('location', 'TRANS');
    header("Location: MYSITE/index.php?pg=" . urlencode('Please Select Your Location')); 

}

然而,我遇到的问题是,无论是否设置了$_COOKIE['location'],所有这些代码都在执行。该页面会打开,看不到$_COOKIE['location']未设置,设置$_COOKIE['EntryURL']并设置$_COOKIE['location']并正确重定向。

但是,在重定向页面(包含在索引中,意味着将再次调用相同的代码),它仍然执行相同的脚本,为每个脚本生成第二个cookie,并阻止我的位置查询页面上的重定向代码正常工作(因为它正在访问已被重写的$_COOKIE['EntryURL'],而是在保存两次时再次生成,以反映位置页面中的$_SERVER['REQUEST_URI']

我无法理解在设置或未设置位置cookie的情况下如何执行此代码块。希望我做一些愚蠢的事情,有人可以快速识别。

0 个答案:

没有答案