Cookie путь специальных символов - PullRequest
1 голос
/ 03 декабря 2008

Моему приложению необходимо установить файлы 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?

Ответы [ 3 ]

2 голосов
/ 03 декабря 2008

Я не вижу проблем с пробелами в куки.
Может быть, вы должны проверить, как вы читаете обратно свою ценность ...
Моя процедура чтения:

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

Очевидно, единственное, что вам нужно закодировать, это точка с запятой.

0 голосов
/ 03 декабря 2008

На какой ОС и веб-сервере вы работаете?

Вы можете попробовать% 20 ​​или + пробелы кодирования, как предложено.

Кроме того, вы пытаетесь найти реальный каталог или правило перезаписи?

0 голосов
/ 03 декабря 2008

Нет доступа к атм веб-сервера. Вы не пробовали один из них?

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...