我想要一个第一个验证$_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的情况下如何执行此代码块。希望我做一些愚蠢的事情,有人可以快速识别。