我已经成功设置了一个cookie cad
,并且可以在firefox cookie-search中看到它。
if(isset($_COOKIE['cad'])){
echo'YES';
}else{
echo'NO';
}
//parse NO
我正在一个托管服务器上设置我的网站,即将从另一个服务器更改,所以服务器是site.com.test.host.com。调用cookie会产生问题吗?
但与此相反的是,print_r($_COOKIE);
显示了同一测试域中的其他cookie
设置cookie时,可以设置各种选项。众所周知,cookie只能由同一域中的脚本访问,但是您也可以影响cookie所设置的路径。例如,/foo/bar.php
上的cookie设置可能无法在/foobar.php
上访问。
PHP默认将cookie设置为当前路径。因此,在上面的示例中,cookie被设置为路径/foo/
,并且不能在该路径之外访问。
因此,当您设置cookie时,最好明确说明您希望它们在哪里可用。在PHP中,这很容易;只需设置一个指定路径的额外参数。正如你在评论中指出的,你需要最自由的路径/
,这意味着"在这个域中的任何地方"。
setcookie('cad', 'somevalue', 0, '/');
参见PHP手册中的setcookie
文档