2008-12-03 3 views
1

Мое приложение должно установить файлы cookie для определенных путей в приложении. Например, (в php):Специальные символы печенья

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

Как ни странно, первый набор работает отлично. Во втором случае не возникает ошибка, и когда я просматриваю свои файлы cookie в Firefox, cookie имеет правильные значения. Однако я не могу получить к нему доступ в своем коде. Я считаю, что пробелы вызывают проблемы, но я не нашел никакой документации или спецификаций о том, как кодировать пути cookie.

Неужели кто-нибудь столкнулся с этой проблемой раньше? Кто-нибудь знает, как бороться со специальными символами в путях cookie?

ответ

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-адресе.

0

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

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

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

2

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

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

Ваш код находится в JavaScript ... – volter9

+0

@ Volter9 Хорошо соблюден ... Итак? Если вы в замешательстве, я обратился к части «_I не могу получить доступ к нему в моем коде» в вопросе. Код PHP в порядке. – PhiLho

Смежные вопросы