вопрос по кукам???
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



вопрос по кукам??? Expand / Collapse
Автор
Сообщение
04.09.2006 23:57
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 04.07.2007 23:09
Сообщ.: 174, Visits: 1 474
Добрый день!!!

Вот у меня такая проблема: я делаю свой информер и мне нужно чтобы на клиенте создавался (действительно, а где же еще ему быть) cookie.

Вот текст клиентской части информера 123.html:

<SCRIPT LANGUAGE="JavaScript" SRC="http://www.mycite.ru/123.php"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
myfunction();
</SCRIPT>

Вот серверной 123.php:

setcookie("aaa","123",time()+3600*10);
?>function myfunction(){document.write("<h1>myInformer</h1>");}<?

Проблема: когда вызываю клиенскую часть с сайта на котором расположен 123.php (www.mycite.ru/123.html) cookie создается, когда с другого(www.othercite.ru/123.html) - нет.и даже доступа к cookie я не имею.почему??? что не так?

НО ТЕКСТ ПОЯВЛЯЕТСЯ В ОБОИХ СЛУЧАЯХ!!!

может быть надо как-то создать cookie с помощью JavaScript

Все заранее спасибо!

Сообщ. #903828
05.09.2006 10:02
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Она создается, просто так как домены разные, ты не имеешь доступа к "чужим" cookie. Модифицируй php код так, чтобы он сохранял текущее значение cookie в переменную javascript.
Сообщ. #903838
05.09.2006 15:59
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 04.07.2007 23:09
Сообщ.: 174, Visits: 1 474
Извини меня пожалуйста, но я не очень понял что ты имешь ввиду. Если можно примерчик???
Сообщ. #903872
05.09.2006 17:58
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Пример тут совершенно простой. Пишем в php файле:

<?php
$cookieValue = '123';
setcookie('aaa', $cookieValue, time()+3600*10);
?>
var myCookie = "<?=$cookieValue?>";
function myfunction()
{
alert(myCookie);
document.write("<h1>myInformer</h1>");
}

Сообщ. #903886
05.09.2006 20:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 04.07.2007 23:09
Сообщ.: 174, Visits: 1 474
нет. это не то о чем я писал. то что таким образом передать значение на клиента я понимаю. мне нужно чтобы оно там сохранилось в куках!!!

Проблема: когда вызываю клиенскую часть с сайта на котором расположен 123.php (www.mycite.ru/123.html) cookie создается, когда с другого(www.othercite.ru/123.html) - нет.и даже доступа к cookie я не имею.почему??? что не так?

т.е. я хочу чтобы было так: вызвался www.othercite.ru/123.html, отработал выше приведенный клиентский и серверный код(НО СЕРВЕРНЫЙ КОД НА САЙТЕ www.mycite.ru) и создался cookie как бы с сайта mycite.ru потом я опять зашел на www.othercite.ru/123.html, опять отработал сервеный скрипт mycite.ru/123.php, но в этот раз ему (скрипту) известно что ПОЛЬЗОВАТЕЛЬ УЖЕ ВИДЕЛ ЭТОТ ИНФОРМЕР!!! а если пользователь зайдет на сайт www.thirdcite.ru/123.html, то я хочу чтобы тоже было ясно что пользователь уже видел этот информер!!!

короче нуже типа счетчик показов информера внезависмости от того на каком сайте его увидель пользователь. как это сделать?

Сообщ. #903900
06.09.2006 9:30
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 04.07.2007 23:09
Сообщ.: 174, Visits: 1 474
bazile, я очень расчитываю на квалифицированный ответ. пожалуйста...
Сообщ. #903914
06.09.2006 12:27
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Toller (05.09.2006)
Проблема: когда вызываю клиенскую часть с сайта на котором расположен 123.php (www.mycite.ru/123.html) cookie создается, когда с другого(www.othercite.ru/123.html) - нет.и даже доступа к cookie я не имею.почему??? что не так?

Я уже отвечяал тебе. Cookie привязаны к конкретному домену от имени которого были отправлены. То есть если у тебя есть страница на сайте othercite.ru которая запрашивает JavaScript файл 123.php с домена mysite.ru, то cookie создается и браузер связывает ее с доменом mysite.ru, потому что именно там находится страница создавшая ее. Страница в домене othercite.ru не может видеть эту cookie так находится в другом домене. Понятно?

Toller (05.09.2006)
т.е. я хочу чтобы было так: вызвался www.othercite.ru/123.html, отработал выше приведенный клиентский и серверный код(НО СЕРВЕРНЫЙ КОД НА САЙТЕ www.mycite.ru) и создался cookie как бы с сайта mycite.ru потом я опять зашел на www.othercite.ru/123.html, опять отработал сервеный скрипт mycite.ru/123.php, но в этот раз ему (скрипту) известно что ПОЛЬЗОВАТЕЛЬ УЖЕ ВИДЕЛ ЭТОТ ИНФОРМЕР!!! а если пользователь зайдет на сайт www.thirdcite.ru/123.html, то я хочу чтобы тоже было ясно что пользователь уже видел этот информер!!!

Ничего сложного в этом нет. Мой пример частично это иллюстрирует. Давай опишу алгоритм как это можно сделать:

  1. Пользователь запрашивает страницу с домена othercite.ru, содержащую ссылку на JavaScript файл mysite.ru/123.php
  2. Скрипт 123.php проверяет была ли отправлена ему cookie с именем aaa (через глобальный массив $_COOKIES[]).
    1. Если такой cookie нет, значит данный пользователь в первый раз запрашивает этот информер.
    2. Если cookie есть, значит это уже не первый показ.
  3. В зависимости от пункта 2.1 или 2.2 выполняются действия по увеличению счетчика. К примеру, можно его хранить прямо в самой cookie. Для 2.1 считаем что кол-во показов = 1, для 2.2 берем  значение счетчика из cookie и добавляем 1.
  4. Сохраняем cookie (вызов setcookie)
  5. Далее на основании информации из шагов 2.* создаем нужный код кол-во показов к примеру, или просто признак были показы раньше или нет.

Вот и все ..

Сообщ. #903927
06.09.2006 16:14
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 04.07.2007 23:09
Сообщ.: 174, Visits: 1 474
Ну так я так и делал - в моем примере ведь это и проиллюстрировано. Ведь 123.php отрабатывает на сайте mycite.ru.  Еще раз пояснияю проблему: на сайте otercite.ru лежит страничка 123.html из которой вызывается mycite.ru/123.php. Вызывается как источник для скрипта. И ВОТ В ЭТОМ СЛУЧАЕ НИЧЕГО НЕ СОЗДАЕТСЯ!!! а когда такая же страничка вызывается с сайта mycite.ru все создается.
Сообщ. #903949
06.09.2006 16:15