Как опредилить "уникальность" посетителя?

Spear

почемучка
Как опредилить "уникальность" посетителя?

здравствуйте,
столкулся с такой траблой -
хочу сделать у себя на сайте раздел "самый популярный материал" - раздел, где будет показываться 10 самый популярный статей с сайта.
Для этого все что нужно - каждый раз при просмотре материала увеличивать поле counter на 1, но ещё и опредилить, что пользователь - уникален. Тоесть чтобы если я нажму Ф5 и подержу пару минут - чтобы все-равно счетчик обновился только на 1.

Посоветуйте, пожалуйста, как с этим справиться?

как опредилить уникальность юзера?

-~{}~ 04.07.05 03:34:

вот статья:
http://www.antichat.ru/txt/superban/
как думаете, моржет использовать принцип супербана? Генерировать случайный ключ и т.п? Но не слишком ли это тяжелый и трудный код?

-~{}~ 04.07.05 03:44:

только немогу понять - как мнеиспользовать этот код не в форме?

-~{}~ 04.07.05 03:51:

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

-~{}~ 04.07.05 04:07:

кстате, можно как-то опредилить, что у юзера отключены куки?

-~{}~ 04.07.05 05:18:

<?
/* &#237;&#224;&#239;&#240;&#232;&#236;&#229;&#240; &#224;&#233;&#228;&#232; &#241;&#242;&#224;&#242;&#252;&#232; - 123 */
$art_id = 12;

session_start("art".$art_id);
if(!empty($_SESSION["art".$art_id]))
{
echo "You've already read article # ".$art_id;
}
else
{
echo "add to db";
$_SESSION["art".$art_id] = 1;
}
?>

правда пока что пользователь может закрыть и открыть браузер - и опять будет считаться "уникальным"...
 

Фанат

oncle terrible
Команда форума
молодец, всё правильно рассудил.
поэтому париться не надо, и считать только ip адреса.
предельно просто и достаточно точно.
 

Spear

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

Хотелось бы узнать - не слишком ли это напряжно,
если учитывать что на сайте много статей (и материала к которому нужно учитывать такую статистику).. скажем 3000, и посещаемость примерно 1к пользователей (а будет гораздо больше)? Выдержит ли БД напор 10 000 пользователей нарпимер? (знаю что много хочу, но нужно писать так, чтобы не загнулся сайт от наплыва посетителей)
 

kvf77

Red Devil
Spear

зачем тебе все считать в реальном времени? Пиши в базу все без разбора, а по крону, скажем раз в несколько минут, считай, отсекая дубликаты (DISTINCT). Врядли тебе надо сиюсекндная статистика.
 

Мутник

Новичок
Spear

а ты посчитай, что такое 10.000 запросов в сутки?

10000 / 24 / 60 = 7 запросов в минуту.

что такое 7 запросов в минуту, когда самый сложный (в простых условиях) не превышает 0.1 сек.

делай и не парься.

-~{}~ 04.07.05 16:56:

kvf77

ИМХО глупость ради такого бреда делать крон. Да еще и раз в несколько минут..

т.е. юзер сначала нагадил в огород, а потом мы убрали.

лучше не давать гадить.
 

Spear

почемучка
был бы крон - я бы вас не мучал своими вопросами нюбайскими :) Крона нет на хостинге :(:(:(

-~{}~ 04.07.05 17:00:

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

Мутник

Новичок
Spear

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

если у тебя куча одинаковых запросов - это плохо.

если нет - опять же, как нам знать..

ты выложи пару тройку примеров, _МОЖЕТ_ быть что то узнаешь...
 

Фанат

oncle terrible
Команда форума
ага.
как всегда - сказка про белого бычка.
хостинг у нас убогий, без крона.
а сайт по посещаемости - не меньше, чем BBC.
ню-ню.
С эротическими фантазиями - это не сюда.
Смотреть на вещи надо реально.
 

Spear

почемучка
Фанат
раскололи меня. Да, на хостинге есть крон, НО доступа через админку к нему нет - нужно писать админу чтобы он поставил скрипт на крон. ПОка админ проверит и поставит - пройдет пару дней. И не известно ещё - с какой периодичностью он его выставит. Так что крона нет.

-~{}~ 04.07.05 17:19:

kvf77
кстате, подсчет нужен не сеюминутный, а хотя бы раз в сутки.
Можно немного подробнее про distrinct?
 

kvf77

Red Devil
Spear
Просто пишешь в базу все IP без разбора - был он уже или небыл. Потом делаешь SELECT DISTINCT count(*)
И получаешь кол-во уникальных IP - потом чистишь таблицу.
 

Фанат

oncle terrible
Команда форума
Да, на хостинге есть крон, НО доступа через админку к нему нет - нужно писать админу
Это и называется "убогий хостинг".
подсчет нужен не сеюминутный, а хотя бы раз в сутки.
о!
раз в сутки нао анализировать логи веб-сервера
 

Фанат

oncle terrible
Команда форума
анализировать скриптом по крону
в логах всё записано -и айпи адрес, и адрес страницы, которую запросили, и реферер.
просто берёшь строчки по одной, парсишь, и результаты записываешь в базу.
 

Spear

почемучка
Фанат
сложно по-моему :) Проще все-таки все айпишники писать.

Что-то не работает SELECT DISTINCT count(*) - считает не кол-во уникальных полей а все (хоть они и все 5 - одинаковые). :(
 

Фанат

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

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

Spear

почемучка
Фанат
у тебя по-моему какие-то личные проблемы, что ты такой обозленный. Не хочешь помогать - не пиши вообще. Хочешь побросаться словами - выйди на улицу, скажи кому-то чотто в глаза. Остынешь. Пуп земли нашёлся.
 

Фанат

oncle terrible
Команда форума
Спасчибо за ваше мнение.
Однако моё предупреждение остаётся в силе.
 

bgm

&nbsp;
Re: Как опредилить "уникальность" посетителя?

Блин... как определить, как определить... Паспорт спросить...
 

borgez

Guest
вот вот правильно думаете батенька
а так сессия, кукис, ай пи, + какойто изврат
использовать в порядке написания
и не спашивай как...
 

Stadnitski Alex

Новичок
Я думаю что определять уникальность пользователя по IP - идея не из лучших. Обьясняю. У нас в пол города пользуется услучами оного провайдера (называть его не буду), и специфика его такова: все клиенты находяться в его подсети, и получается так, что у всех один IP. То есть несколько тысяч компьютеров имеют один и тот же IP
 
Сверху