PHP setcookie没有在子文件夹上工作

时间:2014-03-04 12:53:42

标签: php cookies setcookie

我有以下PHP代码,它将名为lang的cookie设置为en。

的值
setcookie('lang','en',time() + (86400 * 14));

有时通过根目录上的脚本或有时在子文件夹内设置。我正在从子文件夹和根中读取cookie的值,如下所示:

echo $_COOKIE['lang'];

我遇到的问题是,如果我从子文件夹中设置cookie,我就无法读取该值。因此,似乎为每个子文件夹创建了一个cookie值。

我有什么想法可以解决这个问题?我不希望每个文件夹都有一个cookie用于相同的cookie名称lang

*更新*

我已更改为代码以使Cookie适用于/。这是否意味着cookie将适用于所有子文件夹?

setcookie('lang',$selected_language,time() + (86400 * 14),'/'); 

1 个答案:

答案 0 :(得分:2)

正如您在此处所见http://php.net/setcookie这是setcookie()函数的默认行为。

  

可在其上使用cookie的服务器上的路径。如果   设置为'/',cookie将在整个域中可用。如果   设置为'/ foo /',cookie只能在/ foo /中使用   目录和所有子目录,例如/ foo / bar / of domain。该   默认值是正在设置cookie的当前目录   英寸

如果您希望Cookie对整个域有效,则应将路径设置为“/”。