Счетчик посещений для сайта php

Счетчик посещений для сайта php

Пожалуй, одна из самых сложных, но в то же время обыденных, задач программиста является создание статистики посещений на PHP. В этой статье я покажу, как её можно сделать наиболее качественной.

Главная задача статистики посещений — это отличить одного пользователя от другого. Но как это сделать? К сожалению, это вообще невозможно. Если различать по IP, то ничего не выйдет. У огромного числа пользователей он динамический. Более того, у разных людей они повторяются. В итоге, 2 разных IP могут принадлежать одному человеку, а один и тот же IP может принадлежать разным людям.

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

На основании этого давайте с Вами разберём, какая таблица в базе нам потребуется. Вот те поля, которые я считаю необходимы для хорошей статистики посещений на PHP:

  • id — уникальный идентификатор.
  • userhashcookie пользователя. Данное поле по сути и является ключевым при различении пользователей.
  • ipIP-адрес пользователя.
  • uri — страница, на которую пришёл посетитель. Например, /page.html.
  • ref — адрес, с которого пришёл посетитель.
  • date — дата посещения.

Теперь разберём PHP-код добавления в эту таблицу новой записи:

query("INSERT INTO `visits` (`userhash`, `ip`, `uri`, `ref`, `date`) VALUES (‘$userhash’, ‘$ip’, ‘$uri’, ‘$ref’, ‘$date’)"); // Добавляем запись
$mysqli->close(); // Закрываем соединение
?>

Безусловно, данный код надо размещать на всех страницах сайта. И так же он может быть и изменён в зависимости от Вашего движка. Также можно добавлять и другие данные, например, браузер пользователя, ОС и прочее.

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Читайте также:  Программа тестирования андроид устройств

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 23 ):

    А так и нужно чтобы при каждом переходе по ссылкам на сайте появлялась новая запись, или нет?

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

    Всё равно нужно при каждом посещении обновлять таблицу, хоть новую запись добавить, хоть через запятую новый адрес записать.

    Отлично,надо бы "похимичить" с этим кодом.

    Михаил, а можете сделать статью про создание графиков статистики по дате или количеству без сторонних библиотек, в виде дополнения к статье? Я очень прошу, просьба размером с голубого кита.

    Расскажу о создании графиков в PHP на основе данных, но это будет через 2-3 недели.

    Большое спасибо, будем с нетерпением ждать этой статьи, всё мы точно будет рады. Огромное спасибо, а когда будет статья про спойлер на js? Я вас просил написать и до сих пор жду

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

    Если Вы обратили внимание, то в конце каждой темы нашего сайта уже установлен подобный счетчик, который отображает какое количество раз была посещена каждая страничка сайта.

    Читайте также:  Полка в ванную без сверления

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

    Для создания такого скрипта нам понадобится добавить в MySQL таблицу, которая будет содержать в себе id посещенной темы, IP адрес посетителя и время визита. Назовем данную таблицу visit_theme. Структура таблицы visit_theme приведена ниже:

    Так же потребуется добавить в основную таблицу, где хранится вся информация по темам сайта (в PHP коде мы назвали данную таблицу all_theme), дополнительное поле visits (тип данных integer). В данном поле мы будем хранить суммарное число посещений темы, которое будет показываться на сайте для конкретной странички.

    Далее, на все странички Вашего сайта, где необходимо установить счетчик посещений, добавьте следующий PHP код:

    php
    $theme_id = » ; //Необходимо из базы получить и указать id темы
    $ip = $_SERVER [ ‘REMOTE_ADDR’ ];
    $time = time ();

    $res = mysqli_query ( $db , "SELECT count(id) FROM visit_theme WHERE
    id_theme_visit=’" . $theme_id . "’ and ip_visit=INET_ATON(‘" . $ip . "’) and
    date_visit>’" .( $time — 86400 ). "’ LIMIT 1" );
    $count_id = mysqli_fetch_array ( $res );
    if ( $count_id [ 0 ]== 0 ) <
    $res = mysqli_query ( $db , "UPDATE all_theme SET visits=(visits+1) WHERE
    id=’" . $theme_id . "’ LIMIT 1" );
    $res = mysqli_query ( $db , "INSERT INTO visit_theme (id_theme_visit,ip_visit,date_visit)
    VALUES (‘" . $theme_id . "’,INET_ATON(‘" . $ip . "’),’" . $time . "’)" );
    >
    ?>

    Данный PHP код проверяет в таблице visit_theme, были ли посещения данной странички с данного IP адреса за последние 24 часа (86400 секунд). Если не было, то увеличивает в таблице all_theme для темы с указанным id количество просмотров на единицу и добавляет в таблицу visit_theme новую запись с id посещенной страницы, IP адресом посетителя и временем посещения.

    В том месте, где должно выводиться количество посещений темы, добавьте такой PHP код:

    Данный код просто получает из базы количество посещений данной темы и выводит на экран.

    Чтобы не перегружать базу и не хранить все посещения сайта, таблицу visit_theme необходимо периодически чистить от устаревших записей (старше 24 часов). Для этого достаточно раз в сутки запускать следующий код:

    Читайте также:  Программа для удаления вирусов malwarebytes

    В этой статье рассмотрим 2 скрипта Счётчик посетителей на php предназначенных для подсчета количества посетителей вашего сайта, один из которых взаимодействует с Базой Данных MySQL, а второй просто записывает данные об посетителях онлайн в текстовый файл и берёт информацию оттуда, то есть без базы данных.

    Скрипты очень просты в установке и давайте разберём каждый из них по отдельности.

    Счётчик посетителей на php с базой данных MySQL

    • Сколько посетителей на данный момент в онлайн;
    • Какое число посетителей посмотрело данную страницу за сегодняшний день;
    • Сколько уникальных посетителей пришло на ваш сайт за сутки;
    • Количество посетителей за всё время;
    • IP адрес для каждого посетителя;
    • Реальное время и дата.

    В скачанном архиве у вас будет, как я и писал выше, один всего файл smart_counter.class.php с основным классом, и его вам необходимо залить этот файл на хостинг в главную директорию.

    Далее создайте на своём хостинге Базу данных с любым именем, после откройте в текстовом редакторе файл smart_counter.class.php и измените на свои данные в этом коде:

    Скрипт посетители онлайн без MySQL

    PHP скрипт — посетители Онлайн отличается от предыдущего только тем, что он не использует Базу данных, а работает с текстовыми файлами, и при этом практически не создаёт нагрузку на ваш сервер. Он так же использует один PHP класс, который одновременно и записывает, и удаляет данные из этих файлов, и выводит нужную информацию о посетителях вашего сайта.

    Данный скрипт выводит следующую информацию о посетителях на сайте:

    Данные о посетителях

    • Сколько Хостов всего;
    • Сколько Хостов за сегодня;
    • Сколько Хитов всего;
    • Сколько Хитов за сегодня;
    • Сколько посетителей было всего;
    • Сколько посетителей Онлайн на данный момент.

    Для установки php скрипта посетители Онлайн на сайт из скачанного архива закиньте на свой хостинг файл counter.php и выставите ему ПРАВА 644 .

    Далее, в этой же директории создайте 2 пустых текстовых файла и дайте им следующие имена: online.dat и base.dat , и выставите им: ПРАВА 666 .

    Вот и вся установка скрипта, осталось последнее, — это добавить код на ваши страницы для показа информации о ваших посетителях.

    Скачать скрипт счётчик посетителей онлайн

    Ссылка на основную публикацию
    Сравнить технические характеристики rx330 и rx350
    Линейка популярных люксовых SUV Lexus RX пополнилась новой модификацией – RX 350. Теперь покупателем RX быть еще приятнее – ведь...
    Сколько рублей получают ютуберы
    Видеохостинг YouTube — не только развлекательная площадка, но и хороший источник дохода. Тысячи пользователей выкладывают ролики, пытаясь привлечь внимание аудитории....
    Сколько света мотает компьютер
    Выбирая комплектующие для персонального компьютера (ПК) обычно обращают внимание на производительность и объем памяти, порой забывая о том, сколько же...
    Сравнить процессоры кирин и снапдрагон
    Snapdragon 636 vs. Kirin 960: кто лучше? Результаты тестов и сравнительных таблиц, описанных в этой статье, помогут определить, какой из...
    Adblock detector