Я пытаюсь создать сайт на основе статьи с помощью codeigniter. Когда любая статья запрашивается для извлечения из базы данных для просмотра, я использую следующий код, чтобы отметить количество уникальных представлений каждой статьи в отдельной таблице, называемой «хитами».Каков наиболее эффективный способ вести учет количества просмотров uniqie статьи
mysql_query("INSERT INTO hits(ip,article_slug,hitcount)
VALUES('$ip_address','$id',1)
ON DUPLICATE KEY UPDATE hitcount=hitcount+0");
Я беру IP-адрес пользователя и получить значение article_slug от $ this-> uri-> сегмент (3); , а затем выполнить вышеуказанный запрос mysql.
Я использую IP-адрес здесь, чтобы получить количество уникальных просмотров, но мне вдруг приходит в голову, что несколько человек могут использовать один и тот же IP-адрес. Поэтому в этом случае мой запрос выше не кажется эффективным.
Так что мне было интересно, что это самый эффективный способ сделать это. Один из моих друзей говорил об этом с помощью файлов cookie вместо IP-адреса. Вы думаете, что это хорошая идея или есть лучший способ сделать это?
Не могли бы вы дать мне представление о том, как это сделать?
Заранее спасибо :)
cookie не даст вам окончательного подсчета, поскольку они всегда могут быть очищены, а затем вы будете считать одну и ту же машину. – gorelative
Я не думаю, что это возможно на том уровне, который вы хотите. У меня динамический ip. Если я просмотрю сайт, это увеличит количество обращений, но я тот же человек. Или может быть общий ip. Значит, количество ваших хитов будет меньше, чем должно быть. – itachi
Я не думаю, что есть простой способ сделать это. Вы не можете полагаться на IP-адреса или файлы cookie, чтобы надежно идентифицировать человека. Вы можете получить несколько более точные результаты, если вы заставите пользователей зарегистрироваться, а затем войдите в систему, прежде чем они смогут видеть каждую страницу, а затем отслеживать эти хиты, но есть большая работа, связанная с настройкой этого; принуждение людей к входу для чтения статей отключит людей с вашего сайта; и нет никакого способа гарантировать, что у кого-то есть только одна учетная запись. Тем не менее, если вы готовы принять некоторую неопределенность, я бы рекомендовал использовать cookie-подход. – andrewsi