1

我的应用程序需要为应用程序中的特定路径设置 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 路径中的特殊字符?

4

3 回答 3

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;
}

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

于 2008-12-03T20:56:41.420 回答
0

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

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

另外,您尝试的路径是真实目录还是重写规则?

于 2008-12-03T20:46:48.990 回答
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"));

我相信不同的浏览器和网络服务器可能会以不同的方式对待这些。我希望您不必在 url 中使用空格。

于 2008-12-03T20:29:39.057 回答