Как подсчитать, сколько людей прочитало статью

#php

#php

Вопрос:

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

Я понял, что если у вас есть счетчик веб-сайтов, то вы обычно сохраняете IP и дату в базе данных, чтобы посчитать пользователя только один раз.

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

База данных стала бы очень большой, если бы я сохранял IP каждого посетителя для каждой статьи. Теперь мне пришло в голову, возможно, создать сеанс для каждого посетителя. В рамках этого сеанса я сохраняю каждую статью, которую прочитал человек. Поэтому, прежде чем обновлять счетчик в базе данных, я проверяю, существует ли он уже в сеансе — если нет, увеличьте счетчик и сохраните в сеансе, в противном случае не делайте этого.

Это правильный подход или есть другой способ сделать это?

Комментарии:

1. что такое он зашел в статью и не прочитал ее. как вы будете это считать? 🙂

2. ОК, Ок, это никогда не бывает 100%. Что, если он прочитал это, но не понял… Так что, если вы хотите, вы можете назвать это, сколько человек просмотрело ее, открыло или что угодно. Это касается принципа и дает представление о том, сколько людей на самом деле прочитали статью.

Ответ №1:

Это зависит от того, какие данные вы хотите сохранить. Вы можете сохранить:

  1. Количество просмотров (подсчитайте всех людей / ботов /… кто открывал страницы), это создает ложное впечатление о читателях, потому что выполнение обновления будет считать меня дважды.

  2. Количество уникальных посетителей, создайте сеанс для пользователя. и увеличивайте счетчик только один раз за сеанс. Это можно улучшить, установив постоянный файл cookie, но для меня это выглядит излишеством. и, кстати, я могу открыть статью и не читать ее!

  3. Количество людей, взаимодействующих со статьей. Вы можете поместить некоторый javascript capture (прокрутка мышью, щелчки по тексту статьи, …), разделить текст на части с помощью «подробнее» … и т.д.

На вашем месте я бы назвал это «количество просмотров» и использовал решение 2. И объедините это с Google Analytics (или аналогичным решением), чтобы узнать больше подробностей о посетителях.

Ответ №2:

Google Analytics — лучший способ

Но если вы хотите сделать это с помощью программирования, тогда следуйте инструкциям.

i) В вашей таблице из данных конкретной статьи просто добавьте один столбец no_of_view или любой другой, который вы хотите указать..

ii) В начале страницы запишите код php для ::

      from the url you can get the id of current article.
     then from select query get the value of column no_of_view for particular ID (article)
     then fire a query for update that record for no_of_view column with  1

   If you want to get that more accurate then add ipaddress column and date also....
  

Ответ №3:

Я предпочитаю использовать Google Analitycs API для таких задач. Это сложно реализовать в первый раз, но после создания это поможет вам в любом проекте.

Вы можете прочитать здесь — http://code.google.com/intl/en/apis/analytics/docs/gdata/home.html

Комментарии:

1. Я уже использовал Google Analytics раньше, но мне пришлось войти в свою учетную запись, а затем просмотреть Sts о сайте. Чего я сейчас хочу достичь, так это отобразить количество на самой странице, чтобы все могли прочитать. Или вы хотите сказать, что это возможно с G. A?

2. @phgrey рассказывает об API Google analytics, а не об обычной аналитике.

3. Хорошо, это то, что я думал, что это что-то другое. Но думаю, что это, вероятно, слишком сложно, чтобы вникнуть в это…

Ответ №4:

Я бы установил cookie в браузере пользователя и отправил его на сервер. Если файл cookie новый, это новый пользователь, впервые читающий статью.

Комментарии:

1. И если пользователь посещает только одну страницу, cookie никогда не отправляется обратно.

2. Привет, спасибо за ваши ответы. Я не хочу рассчитывать на обновление, это всегда выглядит довольно плохо, когда люди это понимают, но в чем я сейчас не уверен, так это в том, зачем мне использовать cookie? Файл cookie будет сохранен на КОМПЬЮТЕРЕ пользователя, почему бы мне просто не использовать сеанс?

3. сеансы истекают, когда люди покидают веб-страницу. другое решение — сохранить это в базе данных на основе IP-адреса, но это не полностью решает проблему. несколько человек могут использовать один и тот же IP-адрес.

4. @OptimusCrime Точно и что делать в этом случае, есть ли способ получить уникальный идентификатор, когда несколько человек используют один и тот же ip? Должны ли мы тогда ссылаться на браузер?

Ответ №5:

Я думаю, вы можете выполнить функцию ajax, когда пользователь нажимает на статью, чтобы обновить столбец в имени поля таблицы базы данных ‘number_of_click’ в соответствии с идентификатором статьи и другой соответствующей ссылкой

и показать это простым запросом ‘ВЫБЕРИТЕ no_of_click ИЗ статьи, ГДЕ id='{$individual_article_id} ….»;