我的应用程序需要为应用程序中的特定路径设置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路径中的特殊字符?
答案 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或+编码空格。
此外,您正在尝试使用真实目录或重写规则吗?