|
|
|
Supreme 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 Все заранее спасибо!
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Она создается, просто так как домены разные, ты не имеешь доступа к "чужим" cookie. Модифицируй php код так, чтобы он сохранял текущее значение cookie в переменную javascript.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.07.2007 23:09
Сообщ.: 174,
Visits: 1 474
|
|
| Извини меня пожалуйста, но я не очень понял что ты имешь ввиду. Если можно примерчик???
|
|
|
|
|
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>"); }
|
|
|
|
|
Supreme 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, то я хочу чтобы тоже было ясно что пользователь уже видел этот информер!!! короче нуже типа счетчик показов информера внезависмости от того на каком сайте его увидель пользователь. как это сделать?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.07.2007 23:09
Сообщ.: 174,
Visits: 1 474
|
|
| bazile, я очень расчитываю на квалифицированный ответ. пожалуйста...
|
|
|
|
|
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, то я хочу чтобы тоже было ясно что пользователь уже видел этот информер!!! Ничего сложного в этом нет. Мой пример частично это иллюстрирует. Давай опишу алгоритм как это можно сделать: - Пользователь запрашивает страницу с домена othercite.ru, содержащую ссылку на JavaScript файл mysite.ru/123.php
- Скрипт 123.php проверяет была ли отправлена ему cookie с именем aaa (через глобальный массив $_COOKIES[]).
- Если такой cookie нет, значит данный пользователь в первый раз запрашивает этот информер.
- Если cookie есть, значит это уже не первый показ.
- В зависимости от пункта 2.1 или 2.2 выполняются действия по увеличению счетчика. К примеру, можно его хранить прямо в самой cookie. Для 2.1 считаем что кол-во показов = 1, для 2.2 берем значение счетчика из cookie и добавляем 1.
- Сохраняем cookie (вызов setcookie)
- Далее на основании информации из шагов 2.* создаем нужный код кол-во показов к примеру, или просто признак были показы раньше или нет.
Вот и все ..
|
|
|
|
|
Supreme 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 все создается.
|
|
|
|
| | |