Cookie路径特殊字符

时间:2008-12-03 18:40:30

标签: php http cookies

我的应用程序需要为应用程序中的特定路径设置cookie。例如(在php中):

setcookie(*cookie_name*,*value*,*date*,"/subpath/subpath/unique_name");
setcookie(*cookie_name*,*value*,*date*,"/subpath/subpath/another unique name");

奇怪的是,第一个setcookie工作正常。第二个不会产生错误,当我在Firefox中查看我的cookie时,cookie就会出现正确的值。但是,我无法在我的代码中访问它。我相信空格正在造成麻烦,但我没有找到关于如何编码cookie路径的任何文档或规范。

以前有人遇到过这个问题吗?有谁知道如何处理cookie路径中的特殊字符?

3 个答案:

答案 0 :(得分:2)

我发现cookie中的空格没有问题 也许你应该检查你如何回读你的价值...
我的阅读程序是:

function ReadCookie(name)
{
  name += '=';
  var parts = document.cookie.split(/;\s*/);
  for (var i = 0; i < parts.length; i++)
  {
    var part = parts[i];
    if (part.indexOf(name) == 0)
      return part.substring(name.length)
  }
  return null;
}

显然,你唯一需要编码的是分号。

答案 1 :(得分:0)

无法访问网络服务器atm。你还没试过其中一个?

setcookie(*cookie_name*,*value*,*date*, "/subpath/subpath/another unique name/");
setcookie(*cookie_name*,*value*,*date*, urlencode("/subpath/subpath/another unique name"));
setcookie(*cookie_name*,*value*,*date*, rawurlencode("/subpath/subpath/another unique name"));

我相信不同的浏览器和网络服务器可能会区别对待。我希望你不必在网址中使用空格。

答案 2 :(得分:0)

您在运行什么操作系统和网络服务器?

您可以按照建议尝试%20或+编码空格。

此外,您正在尝试使用真实目录或重写规则吗?