Forum Webscript.Ru

Дизайн и Верстка => Всё о Html => Тема начата: Foshvad от 13 Декабря 2001, 18:43:01

Название: установка Cookie java-script\'ом
Отправлено: Foshvad от 13 Декабря 2001, 18:43:01
В каком формате надо указывать expires?
((expires) ? "; expires=" + expires.toGMTString() : "") +
Устанавливает левая дата и кук не виден. Без даты все работает.
Название: установка Cookie java-script\'ом
Отправлено: Макс от 14 Декабря 2001, 00:20:54
А вот этот код работает?

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" : "");
   }
Название: установка Cookie java-script\'ом
Отправлено: Dim от 01 Апреля 2005, 07:46:58
Скрипт хороший - работает. Куки две ставит у меня.
Но есть одно НО.
Он в куке указывает директорию или домен/поддомен откуда поставлен и соответственно далее действует в пределах этого домена/директории.
В куке пишет типа:
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, \'\', \'\', \'\');
Название: установка Cookie java-script\'ом
Отправлено: Foshvad от 01 Апреля 2005, 13:07:28
что ты пятым параметром в SetCookie() сообщаешь?
Надо: ".yourdomen.com" (с точкой в начале)
Название: установка Cookie java-script\'ом
Отправлено: Dim от 01 Апреля 2005, 23:05:32
Спасибо 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.
У кого дельные мысли есть? Субдоменами и доменами нормально. А вот как победить то, что  бы не имело значение из под какой директории идёт работа с кукой, главное, чтобы была одна и таже кука?
Спасибо.
Название: установка Cookie java-script\'ом
Отправлено: Foshvad от 02 Апреля 2005, 00:10:02
хм... не понял что-то как и где ты куки шлешь

напиши:
- скрипт, который шлет кук
- страница, с которой шлется кук
- страницы, где виден, где не виден этот кук

P.S. ты ж в курсе, что кук будет виден только после перезагрузки сраницы?
Название: установка Cookie java-script\'ом
Отправлено: Dim от 12 Апреля 2005, 20:22:01
После нескольких опытов картина прояснилась :)
Пишем так
SetCookie(\'scrw\', width, expiry, \'\', \'cjs\', \'\');
то эта кука только на корневой домен "cjs\'\' и не катит на субдомены.
Если пишем
SetCookie(\'scrw\', width, expiry, \'\', \'.cjs\', \'\'); т.е. именно с тошешкой ;)
то эта кука катит на все домены где встречается корневым cjs
если пишем
SetCookie(\'scrw\', width, expiry, \'/\', \'cjs\', \'\');
то кука лепится единая на людую директорию в домене. Если пишем имя конкретной директории, то соответственно на эту конкретную директорию пишется или если не пишем ничего, то на каждую директорию лепится своя кука
Вот собственно :)
Собственно открытия не сделано ;) Изложил тотже, что и в мане, только через ....

Что меня в этой истории огорчило:(, так это то, что нельзя поставить куку на несколько доменов второго уровня. Ну, типа юзер получил куку на domen1.com и попёр с ней дальше, например на domen0.com domen2.com domen3.com и т.д. и на них уже новую куку домены не ставят, а считывают всё что нуно с куки которую domen1.com поставил. И везде юзера встречали бы "Привет друг!"

Может кто знает как эту задачку решить лёгким способом?