我有以下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),'/');
答案 0 :(得分:2)
正如您在此处所见http://php.net/setcookie这是setcookie()
函数的默认行为。
可在其上使用cookie的服务器上的路径。如果 设置为'/',cookie将在整个域中可用。如果 设置为'/ foo /',cookie只能在/ foo /中使用 目录和所有子目录,例如/ foo / bar / of domain。该 默认值是正在设置cookie的当前目录 英寸
如果您希望Cookie对整个域有效,则应将路径设置为“/”。