Автор Тема: установка Cookie java-script\'ом  (Прочитано 5646 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« : 13 Декабря 2001, 18:43:01 »
В каком формате надо указывать expires?
((expires) ? "; expires=" + expires.toGMTString() : "") +
Устанавливает левая дата и кук не виден. Без даты все работает.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #1 : 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" : "");
   }
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #2 : 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, \'\', \'\', \'\');
С уважением, Дмитрий

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #3 : 01 Апреля 2005, 13:07:28 »
что ты пятым параметром в SetCookie() сообщаешь?
Надо: ".yourdomen.com" (с точкой в начале)

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #4 : 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.
У кого дельные мысли есть? Субдоменами и доменами нормально. А вот как победить то, что  бы не имело значение из под какой директории идёт работа с кукой, главное, чтобы была одна и таже кука?
Спасибо.
С уважением, Дмитрий

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #5 : 02 Апреля 2005, 00:10:02 »
хм... не понял что-то как и где ты куки шлешь

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

P.S. ты ж в курсе, что кук будет виден только после перезагрузки сраницы?

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
установка Cookie java-script\'ом
« Ответ #6 : 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 поставил. И везде юзера встречали бы "Привет друг!"

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28