Счетчик посещений, основанный на cookie

Rush

Новичок
Счетчик посещений, основанный на cookie

Задача: сделать счетчик для сайта, в котором должны учитываться уникальные посещения.
Вариант С определением уникальных по IP не прокатывает так как за один дент заходит довольно большое количество человек с одинаковым IP.
Был предложен такой вариант: когда посетитель заходит, проверяется, есть ли у него кука с именем например 'visited'. если есть, то юзер не учитывается, если нет - учитывается и ему пишется кука с временем жизни до конца суток. Таким образом мы посчитаем уникальных посетителей за сутки.

Для решения задачи придумал такой код:
PHP:
if (!isset($_COOKIE['visited'])) {
    $time = getdate();
    $lifetime = 24*3600 - 3600*$time['hours'] + 60*$time['minutes'] + $time['seconds'];
    setcookie('visited', 1, time() + $lifetime);
    $hosts++; //Увеличиваем количество уникальных на единицу
 }
Проблема в том что кука не уничтожается как ожидается в 0-00 и следовательно юзер не учитывается если даже пришел на следующий день.
Заранее спасибо за помощь.
 

Alexandre

PHPПенсионер
Rush
сделать счетчик для сайта
Зачем вообще нужен счетчик?

Ну раз задумал, то:

Делай учет:
всех
из них уникальных (по IP с кукой )
выводи две цифры.

Хотя, некоторые куки отключают (где-то 30%).
 

Rush

Новичок
Хотя, некоторые куки отключают (где-то 30%).
по статистике сайта куки отключают только ~1-2% посетителей.....
вариант с ip не прокатывает никак потому что с одинаковыми айпи заходят несколько челов за день (ИМХО человек 10 как инимум ( такая вот особенность ресурса.....)
$lifetime = 24*3600 - (3600*$time['hours'] + 60*$time['minutes'] + $time['seconds']);
Я конечно попробую, но вообще я проверял, время считает правильно.........
 

jer

...
вариант с ip не прокатывает никак потому что с одинаковыми айпи заходят несколько челов за день (ИМХО человек 10 как инимум ( такая вот особенность ресурса.....)
если это вариант с интернет-кафе, например, либо просто точки свободного доступа, то и 10 человек зайдут под одной кукой.
тут абсолютного метода нет.
 

demis

Новичок
Еще можно сессии включить в дело.
А вообще, статистика, это лженаука ) никогда не узнаешь насколько ты приблизился к реальному числу. Так что попробуй собрать сначала все статистические данные (ip,session_id,включены ли куки?,city,country,agent,и т.п.) детально проанализируй и выбери как тебе их лучше считать.
Я сразу пользовался вместо проверки на уникальность, session_id, после поменял на ip, это все в связке с куки. Что так, что так есть расхождения от счетчиков spylog, hotlog, да и кто знает, как они считают.
 

yaniks

новичок
> $lifetime = 24*3600 - 3600*$time['hours'] + 60*$time['minutes'] + $time['seconds'];
> ... time() + $lifetime ....
Почему бы сразу не mktime (0,0,-1,date('m'),date('d')+1,date('y'));
 

Фанат

oncle terrible
Команда форума
Что за глупость доверять браузеру в вопросах времени?
Что ты - залезешь на каждый комп к юзеру и выставишь ему точное время?
Какая проблема записать время в куку?
И уже его сомтреть.

А вообще, так счетчики никто не делает.
Это детский лепет, а не счетчик.
Если хочешь действительно считать, то ставь уникальную куку человеку - тогда и научишься нормально считать. И, естественно, надо учитывать и тех, у кого куки не работают.
по статистике сайта куки отключают только ~1-2% посетителей.....
откуда информация?
про 30 он, конечно, загнул, но 1-2 - это тоже нереально.
Вообще, тебе бы подковаться сначала теоратически, прежде, чем писать счетчик.
Чтобы не называл посетителей посещениями, например, и так далее.

demis
сессии включать в это дело НЕ НАДО. Что видно даже из постановки задачи, не говоря уже обо всем остальном.
 

Rush

Новичок
Счетчик заработал (проблема действительно была в арифметике), но как оказалось это действительно "детский лепет" )
Некоторые несознательные товарищи применяя нехитрые манипуляции по удалению куки пытаются (и не безуспешно) его накрутить........

Какая проблема записать время в куку?
И уже его сомтреть.
Проблемы нет, так и сделаю )

откуда информация?
По данным того же сайта. Насчет 1-2% я конечно наврал )
Вчера уточнил, куки включены примерно у 90% посетителей


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

-~{}~ 18.10.04 10:55:

если это вариант с интернет-кафе, например, либо просто точки свободного доступа, то и 10 человек зайдут под одной кукой.
Это не вариант с интернет кафе. Заходит народ с одинаковым ip но с разных компов
 

Фанат

oncle terrible
Команда форума
что примерно я должен писать в в куку чтобы она была уникальной?
уникальное число. время с точностью миллисекунд, например. или значение автоинкрементного счетчика из базы.
 

Rush

Новичок
нет, серьезно, я правда не понимаю чем занесение в куку уникальных данных лучше занесения простой единицы?
 

Rush

Новичок
И как можно предотвратить накрутку путем удаления куки?
 

Фанат

oncle terrible
Команда форума
Никак.
Накрутки вообще предотвратить нельзя.
Ты мне другое скажи - кому придет в голову накручивать твой сайт?!
 

Rush

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

Фанат

oncle terrible
Команда форума
Я думаю, тебе рановато переделывать топы.
Без обид, но здесь надо что-то свое в голове иметь - опыт, знания.
Форумом их не заменишь.

Впрочем, у заказчиков твоих их тоже нет, судя по заказу...
Это ж надо было додуматься - заменить хост (который тоже накрутить не проблема, но, все жа сложнее) на куку!
 

Rush

Новичок
Без обид, но здесь надо что-то свое в голове иметь - опыт, знания.
А где их брать?)
Может дашь пару ссылок (не сочти за наглость)))

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

Фанат

oncle terrible
Команда форума
Ну так пусть он с жиру не бесится, а ты верни топ обратно на хосты.

-~{}~ 18.10.04 15:32:

И впредь постарайся задавать вопрос именно про то, что ты делаешь, а не про отвлеченную беллетристику.
Если бы ты сразу сказал, что делаешь топ, тебе бы сразу ответили, что переводить его на куки - безумие.
 
Сверху