Forum Webscript.Ru

Программирование => PHP => Тема начата: Lucent от 04 Сентября 2006, 19:55:56

Название: Проблема со счетчиком посещений
Отправлено: Lucent от 04 Сентября 2006, 19:55:56
Счетчик нормально работал, когда был установлен на 1ом сайте.
Теперь неободимо его поставить на нескольких.

Алгоритм:
1. на каждой странице картинка с подгрузкой скрипта счетчика

2. counter.php

if($_COOKIE[\'visitors_date\']!=date(\'Y-m-d\'))
{
//это новый посетитель в моей системе
1. вставка в таблицу visitors информации о посетителе
2. сохраняю в куках: \'visitors_date\' + \'visitors_id\'
}
else
{
//старый посетитель
1. сохраняю таблицу visitorspage: id посещенного сайта + наименование посещенной страницы для посетителя $_COOKIE[\'visitors_id\']
}


счетчик установлен на 2ух сайтах (test.com + demo.com), которые есть дополнительными доменами на одном хостинге
сам скрипт подгружается с test.com
Проблема:
счетчик на demo.com не правильно работает , а именно каждый мой клик считает за нового посетителя
счетчик на test.com работает правильно

P.S. локально для 2ух виртуальных хостов все нормально работает, на хостинге - нет.

В чем может быть проблема?
Название: Проблема со счетчиком посещений
Отправлено: brainkiller от 04 Сентября 2006, 20:18:28
в куках, вестимо
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 04 Сентября 2006, 20:25:55
ТО есть получается, что куки оставленные подгружаемым скриптом на другом домене, не досутпны для него, как же тогда счетчики индентифицирует полльзователей по кукам?
Название: Проблема со счетчиком посещений
Отправлено: CGVictor от 05 Сентября 2006, 10:34:24
Lucent
Именно. Идентифицируют при помощи cookie для одного (своего) домена.
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 05 Сентября 2006, 11:14:06
CGVictor
поясни пожалуйста

Я правильно понимаю.
Скрипт http://test.com/counter.php оставляет такую куку
setcookie ("visitors_id", 100, time()+86400);
на 2 доменах

Варианты:
1. на родном домене(http://test.com/) после перезагрузки страницы
он получит набор кук оставленных скриптами с http://test.com/
то есть $_COOKIE[\'visitors_date\'] будет равна 1000 - все ok
2. на чужом домене (http://demo.com/) после перезагрузки страницы
он получит набор кук оставленных скриптами с http://demo.com/, а его куки привязаны к (http://test.com/), то есть $_COOKIE[\'visitors_date\'] будет пустой

все верно?
если да, то как работать с куками скрипту на чужом хосте?
Название: Проблема со счетчиком посещений
Отправлено: CGVictor от 05 Сентября 2006, 13:01:43
Lucent
Рассуждаешь правильно.

В общем ситауция такова: скрипт может получить доступ только к тем кукам, которые установлены для его домена (либо верхнего домена второго уровня, но это несущественно).

Как выходить из положения: выделять одни домен под всю статистику. На практике это означает, обычно, скрипт статистики на одном из сайтов, к которому и должно идти обращение от юзера. А он уже выставит куку для своего домена (и впоследствии спокойно получит, ведь обращаются на его же домен).

Проще и быстрее - написать скрипт, выдающий картинку, и поместить ссылку на нее со всех хостов.
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 05 Сентября 2006, 13:41:02
Что ж тогда у меня не так?

>Проще и быстрее - написать скрипт, выдающий картинку, и поместить ссылку на нее со всех хостов.

у меня на каждом сайте - картинка
1. на test.com -
2. demo.com


>Как выходить из положения: выделять одни домен под всю статистику. На практике это означает, обычно, скрипт статистики на одном из сайтов, к которому и должно идти обращение от юзера. А он уже выставит куку для своего домена (и впоследствии спокойно получит, ведь обращаются на его же домен).

скрипт counter.php на отдельном домене test.com

не могу уловить отличия того что у меня от описанного тобою
Название: Проблема со счетчиком посещений
Отправлено: CGVictor от 05 Сентября 2006, 18:00:10
Lucent
Цитировать
Lucent:
не могу уловить отличия

Да, я заметил. Хм.
На всякий случай проверил на своих хостах тот же метод. У меня - работает.

Есть подозрение: а какой браузер?
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 05 Сентября 2006, 18:12:41
>Есть подозрение: а какой браузер?
MyIE
да дело и не в нем, была уже куча посетителей с разными броузерами - то же самое

Вопрос конкретный:
Скрипту counter.php который подгружается картинкой  на другом хосте http://demo.com/

должны быть доступны куки, оставленные им же или нет?

По идее должны.
Я правильно понимаю:
странице скажем http://demo.com/index.php досутпны куки для домена demo.com
а для подгружаемого http://test.com/counter.php должны доступны куки для test.com, то есть те что он и оставлял?
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 05 Сентября 2006, 18:55:20
А дело случайно не в том, что мои куки на чужом хосте являются "сторонними", а в броузере в настройках стоит запретить "сторонние куки" ...

хотя вижу, что другие счетчики подгружаемые с моих сайтов - оставляют их без проблем ....
Название: Проблема со счетчиком посещений
Отправлено: Lucent от 05 Сентября 2006, 19:19:59
Вроде понял, не знаю верно ли:

по умолчанию в броузерах стоит "блокировать сторонние куки не удовлетворяющие политики конфедициальности"

то есть, если у сайта, который предоставляет счетчик (domik.net, realt.ua) нет сертификата безопасности - его сторонние куки (на других сайтах) будут блокированы, и такой счетчик  может подсчитать только хосты и клики.

у крутых поорталов (bigmir.net) - сертификат есть и они могут проводить идентификацию по сторонним куках

верно?
Название: Проблема со счетчиком посещений
Отправлено: CGVictor от 05 Сентября 2006, 19:48:16
Lucent
Да, ты понял верно (сорри, сразу не написал - уже с работы уехал).
Есть выход: написать P3P policy. Это документ для IE, регламентирующий работу с частной информацией. (действует в IE6 и IE7)
Можешь разбираться с xml-нотификацией (советую, много умного есть), а можно просто отдать в заголовках:
header(\'P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"\');
Это - сокращенная запись разрешения на все типы использования.
Попробуй.