Дизайн и Верстка > Всё о Html
установка Cookie java-script\'ом
Foshvad:
В каком формате надо указывать expires?
((expires) ? "; expires=" + expires.toGMTString() : "") +
Устанавливает левая дата и кук не виден. Без даты все работает.
Макс:
А вот этот код работает?
var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);
function SetCookie (name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
Dim:
Скрипт хороший - работает. Куки две ставит у меня.
Но есть одно НО.
Он в куке указывает директорию или домен/поддомен откуда поставлен и соответственно далее действует в пределах этого домена/директории.
В куке пишет типа:
domen.ru/
domen.ru/art/
domen.ru/book/
и т.д.
Как бы его изменить, что бы ставил куки доступные для всех субдоменов и деректрой этого домена второго уровня, т.е. которые можно далее соответственно считать находясь на любом домене третьего уровня и в любой его директории.
Спасибо.
Да вот собственно как он у меня выглядит, собственно почти один в один.
var width = \'yes\'; var json = \'yes\';
//------------------------------------- определяем разрешение (ширину) экрана
if (self.screen) { width = screen.width } //----------------- for NN4 and IE4
else
if (self.java) { //-------------------------- for NN3 with enabled Java
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width; }
//------------- инициал-ем и опр-ем знач. переменной окончания действия куков
var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);
//--------------------------------------------------- функция установки куков
function SetCookie (name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
//---------------------------------------------------- делаем установку куков
SetCookie(\'scrw\', width, expiry, \'\', \'\', \'\');
SetCookie(\'activejs\', json, expiry, \'\', \'\', \'\');
Foshvad:
что ты пятым параметром в SetCookie() сообщаешь?
Надо: ".yourdomen.com" (с точкой в начале)
Dim:
Спасибо Foshvad !
Интересная штука получается.
Если ставлю \'cjs.ru\' (с без точки в начале и урл типа subdomain.cjs.ru/03.phtml ), то куку пишет для коренного домена. Соответсвенно должна быть видна и с другого субдомена тоже.
Если ставлю \'.cjs.ru\' (с точкой в начале и урл типа subdomain.cjs.ru/03.phtml ), то ПОФИГ куку пишет для коренного домена. Соответсвенно должна быть видна и с другого субдомена тоже.
Если урл cjs.ru/03.phtml , то всё тоже самое.
Если обращаюсь к файлу в директории, т.е. subdomain.cjs.ru/book/03.phtml , то тоже ПОФИГ с точкой или без. Всё одно лепит куку не в корневому домену, а в отдельную куку конкретно с этой директорией, т.е. пишет в куке "cjs.ru/ru/".
Ну думаю объеду это дело и кину слышку сзади.
Т.е. если ставлю \'.cjs.ru/\' , или так \'cjs.ru/\' , или так \'.cjs.ru\' , или так \'cjs.ru\' , то всё одно ПОФИГ если обращение идёт к поддиректории, хоть корневого домена, хоть субдомена.
Тестил на IE5 и Вин98/СП2.
У кого дельные мысли есть? Субдоменами и доменами нормально. А вот как победить то, что бы не имело значение из под какой директории идёт работа с кукой, главное, чтобы была одна и таже кука?
Спасибо.
Навигация
Перейти к полной версии