Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Значения куков сохранёные на домене не видны на поддоменах
 
 автор: Terri   (06.09.2007 в 12:30)   письмо автору
 
 

подскажите, можно ли при помощи JS принимать и сохранять значения в куках на поддоменах?

вот допустим использую на домене www.domen.ru
document.cookie = "bookmarks_" + btype + obj.value + "=" + obj.value + "; expires=" + cookieExpires + "; path=/";

всё работает, но когда я нахожуть тут sub.dome.ru

то почемуто значения сохранёные на www.domen.ru не видно на sub.dome.ru

как можно сдёлать чтобы они они были видны и на поддоменах?

в PHP это делается так .domen.ru
в начале точка и за ней название домена

а как на SJ сделать непойму, подскажите плиз.

   
 
 автор: coloboc66   (06.09.2007 в 13:31)   письмо автору
 
   для: Terri   (06.09.2007 в 12:30)
 

На поддоменах куки работатют. Единственная проблема, которая может быть, это та, что устанавливать куки для поддомена нужно отдельно. Всё-таки это другой хост, можно сказать...

   
 
 автор: Terri   (06.09.2007 в 13:40)   письмо автору
 
   для: coloboc66   (06.09.2007 в 13:31)
 

жаль, на PHP это работает

а можно тогда чтобы куки работали только на третьем уровне, только имена третьего уровня будет разный, тоесть так:

auto.domen.ru
travel.domen.ru

допустим сохранил я на auto.domen.ru и они были видны на travel.domen.ru
такое возможно?

   
 
 автор: coloboc66   (06.09.2007 в 13:48)   письмо автору
 
   для: Terri   (06.09.2007 в 13:40)
 

Это зависит от броузера. Не буду утверждать, но думаю,что невозможно. Может, я ошибаюсь...

   
 
 автор: Terri   (06.09.2007 в 13:47)   письмо автору
 
   для: coloboc66   (06.09.2007 в 13:31)
 

вот тут например видно, сохранёные букмарики на
http://rabota.slando.spb.ru/spb/1382_1.html

учитываются и тут
http://auto.slando.spb.ru/spb/203_1.html

тоесть на странице по авто сохранил в избраное, и на странице по работе они видны, тоесть пишет что Избранное (14 )

   
 
 автор: coloboc66   (06.09.2007 в 14:08)   письмо автору
 
   для: Terri   (06.09.2007 в 13:47)
 

Сделайте куки на ява-скрипт и посмотрите, что получится.

   
 
 автор: Terri   (07.09.2007 в 05:26)   письмо автору
 
   для: coloboc66   (06.09.2007 в 14:08)
 

извиняюсь, а как это можно сделать?

у меня вроде и так на ява скрипте сделано, но работает только на домене

   
 
 автор: coloboc66   (07.09.2007 в 10:20)   письмо автору
 
   для: Terri   (07.09.2007 в 05:26)
 

---

   
 
 автор: sim5   (07.09.2007 в 10:25)   письмо автору
 
   для: Terri   (07.09.2007 в 05:26)
 

Информация в Cookie задается принципом ИМЯ=ЗНАЧЕНИЕ. В одном документе может содержаться несколько Cookies (не больше 20). Минимальное описание поля Cookie выглядит так:
Set-Cookie: NAME=VALUE;
Максимальное выглядит так:
Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure

NAME=VALUE - NAME - Имя Cookie, VALUE - Значение. Можно менять как NAME, так и VALUE. Используются любые символы, кроме символа переноса строки, двоеточия, запятой и пробела.
Пример: Имя=Вася

expires=DATE - Дата окончания действия Cookie. Менять только DATE. Вид такой: "expires=День, Число-Ден-ГГГГ ЧЧ:ММ:СС GMT". Если expires не обозначен, Cookie хранится до закрытия окна броузера.
Пример: expires=Fri, 14-Sep-2005 13:13:13 GMT

domain=DOMAIN_NAME - домен на котором действителен Cookie. Вид такой: "domain=domain.com". Cookie будет действителен как для www.domain.com, так и для myname.domain.com. В зоне RU и других локальных зонах не работает. Используется только для COM, EDU, NET, ORG, GOV, MIL и INT. Если domain не обозначен, используется доменное имя сервера с Cookie.
Пример1: domain=mamapapa.com
Пример2: domain=gazzzeta.da.ru

path=PATH - Указывает имена докментов, для которых действительно значение Cookie. Вид такой: "path=/word". Cookie будет отсылаться в директориях /word, /word2000 и файлов в текущей директории с именами word.htm, wordchampion.html. Для применения Cookie ко всему серверу указывается корневой каталог сервера /. Если path не указан, Cookie распространяется только на текущую директорию.
Пример1: path=/gazzzeta
Пример2: path=/

secure - Если указан, при передаче Cookie используется HTTPS (HTTP с SSL - Secure Socket Level). Если secure не указан, Cookie передается HTTP.

Если Cookie использует одинаковое значение NAME, domain и path - старое значение заменяется новым.

Вставка Cookie в HTML.
Вставить Cookie можно несколькими способами. Самые простой - это через META-тег. Альтернативным способом является Javascript и всевозможные другие технологии (CGI, PHP, SSI и т.д.).

Использование Cookie через META-тег.
Между тегов <HEAD> и </HEAD> Cookie вписывается так:
<META HTTP-EQUIV="Set-Cookie" CONTENT="NAME=VALUE; expires=DATE; domain=DOMAIN_NAME; path=PATH; secure">
Можно использовать несколь META-тегов с Cookie в одном документе.
Пример: <META HTTP-EQUIV="Set-Cookie" CONTENT="Имя=Вася; expires=Fri, 14-Sep-2005 13:13:13 GMT; path=/; domain=provider.com; secure">

Использование Cookie через Javascript.


<script language="JavaScript">
<!--
var username = GetCookie('username');
if (username == null) {
username = prompt(' Пожалуйста, введите Ваше им\я\n (в противном случае нажмите cancel)',"");
if (username == null) {
alert('Ну хорошо, тогда я буду звать Вас ВебСёрфером');
username = 'ВебСёрфер';
} else {
pathname = location.pathname;
myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
// Установка параметра expire на год вперед.
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime() + (365 * 24 * 3600 * 1000));
SetCookie('username',username,largeExpDate,myDomain);
}
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)
break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" +
expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure"; : "");
}
document.write('<p align=center>Здравствуйте, ' + username + '</p>');
// --></SCRIPT>

   
 
 автор: Terri   (07.09.2007 в 16:43)   письмо автору
 
   для: sim5   (07.09.2007 в 10:25)
 

хм, интересно, надо будет попробывать, выходит что можно использовать на поддоменах но только в одной конкретной зоне, ну а больше и не требуется в принципе то. Спасибо большое, сейчас начну пробовать

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования