Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果未设置指定的cookie,则应设置cookie,但代码始终会创建新的cookie_Php_Cookies_Setcookie - Fatal编程技术网

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

Php 如果未设置指定的cookie,则应设置cookie,但代码始终会创建新的cookie,php,cookies,setcookie,Php,Cookies,Setcookie,我想要一个脚本,首先验证是否设置了$\u COOKIE['location']。如果未设置$\u COOKIE['location'],我想将入口URL保存到$\u COOKIE['EntryURL']中,并将$\u COOKIE['location']设置为“TRANS”,同时重定向用户以输入其zip或手动选择其位置 因此,我生成了以下PHP: if(!isset($_COOKIE['location'])) { $EntryURL = $_SERVER['REQUEST_URI']

我想要一个脚本,首先验证是否设置了
$\u COOKIE['location']
。如果未设置
$\u COOKIE['location']
,我想将入口URL保存到
$\u COOKIE['EntryURL']
中,并将
$\u 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')); 

}
然而,我遇到的问题是,所有这些代码都是在设置或不设置
$\u COOKIE['location']
的情况下执行的。页面打开,看到未设置
$\u COOKIE['location']
,设置
$\u COOKIE['EntryURL']
并设置
$\u COOKIE['location']
,并正确重定向

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


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

此处接受答案中的解决方法可能会有所帮助。这根本无法解决此问题。该人正试图召回同一页面上的cookie集,我这不是我在这里要做的。如果你给它一个过期时间怎么办?例如使用
setcookie($cookie\u name,$cookie\u value,time()+(86400*30),“/”)
它什么时候过期并不重要。事实上,我特别想回去保存这些cookie六个月,这样用户就不必在每次访问站点时重置位置,只要他们不清除历史记录。我的问题是,此代码在cookie存在之前执行,然后在cookie存在之后再次执行.您在测试时没有遇到禁用的Cookie,是吗?