使用php找不到设置的cookie

时间:2011-07-07 21:33:33

标签: php cookies

我已成功设置了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。

1 个答案:

答案 0 :(得分:3)

设置Cookie时,您可以设置各种选项。众所周知,Cookie只能通过同一域中的脚本访问,但您也可以影响设置cookie的路径。例如,可能无法在/foo/bar.php上访问/foobar.php上设置的Cookie。

PHP默认将cookie设置为当前路径。因此,在上面的示例中,cookie被设置为路径/foo/,并且在该路径之外无法访问。

因此,当您设置Cookie时,最好明确说明您希望它们可用的位置。在PHP中,这很容易;只需设置一个指定路径的额外参数。正如您在评论中指出的那样,您需要最自由的路径/,这意味着“在此域上的任何位置”。

setcookie('cad', 'somevalue', 0, '/');

请参阅the setcookie documentation in the PHP manual