Октябрь 9, 2002

Счётчик на PHP

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

Если вашему сайту не нужна расширенная статистка или вы не желаете портить дизайн графическими счётчиками, эта статья - для вас. Счётчик показывает количество уникальных посетителей "сегодня" и "всего". Написан на PHP.

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

Далее. Значения, в нашем случае это три числа, необходимо всё-таки хранить на сервере, иначе просто негде. Вы спросите, почему три числа, а не два. Дополнительное значение является текущим днём месяца, который записывается и впоследствии проверяется для учета посетителей "сегодня".

Рассмотрим код счётчика. Для его работы необходимо вручную создать простой текстовый файл counter.txt в любом редакторе. Выглядит он так:

Первое значение - количество посетителей всего, второе - текущий день месяца и третье - посетителей сегодня.

"Тело" счётчика состоит из двух функций: setvisit() и getvisit(). Перед каждой строкой есть комментарий, поэтому код выглядит довольно большим; зато понятным.

Функция setvisit() устанавливает значения счётчика.

Функция getvisit() считывает значения счётчика.

Руководство по эксплуатации счётчика.

Чтобы испльзовать счётчик на разных страницах, поместите функции setvisit() и getvisit() в отдельный файл, например counter.php. Следующий код необходимо поместить на главную страницу вашего сайта. Он устанавливает cookie в браузере посетителя, таким образом исключая его из дальнейшего обсчёта, а также устанавливает значения счётчика методом setvisit().

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

Надо отметить, что значения можно сделать невидимыми для посетителей, но видимыми для вас. Для этого вы можете вставить этот код в HTML комментирии, например, или в атрибут title любой картинки на вашем сайте. Таким образом вы сможете видеть счётчик, поводив курсором над изображением.

Полезные ссылки:

Автор: Сергей Яценко

Комментарии

1. 22.09.04 17:53 От: Сидоров А.В.

В данном счетчике есть один минус, он не подходит для сайтов с большой посещаемостью. Что делать, если два посетителя зашли одновеменно? В текстовый файл нельзя писать одновременно двум пользователям. Я предложил бы использовать БД.

2. 22.09.04 18:54 От: Сергей Яценко

В функции setvisit после fopen можно добавить flock(file). Тогда проблем с одновременным доступом не будет.

Конечно это очень упрощённый счётчик.

3. 11.10.04 21:36 От: devoll

Действительно простой счётчик... А если у браузера куки отключены..?
На "Коденете" (http://codenet.ru/webmast/php/visitors.php) есть статья, где описывается алгоритм создания счётчика с использованием БД и IP, и вообще неплохой алгоритм для тех кто любит кодировать сам...
Кстати, это не реклама... так... думал будет интересно...

4. 18.04.05 11:40 От: vasiliy

А чо так это сложно то а готовый один блок можно както сделать мне по барабану как оно работает пусть будет

5. 24.05.07 22:02 От: ччч

vasiliy, тебя писать в школе учили, бестолочь?!

6. 24.04.08 16:09 От: dwd

Советую заглянуть сюда:
http://programmistu.info/news-view-105.html
http://programmistu.info/news-view-64.html
http://programmistu.info/news-view-40.html
Это примеры счетчиков посещений с использованием БД и без. Удачи.

7. 20.02.09 11:39 От: Comon

http://www.b-a-t.lv

http://www.mv-drosiba.lv

8. 20.02.09 11:42 От: газета TABLOID

TABLOID на http://www.b-a-t.lv

9. 22.10.09 20:59 От: djalin

Мне как чайнику подойдет

10. 28.10.09 07:54 От: Tayfur

Сильно посещаемому сайту вреден. Мало посещаемому сайту.. ну повесишь лишний банер счётчика и чё.. яша будет коситься чтоль?
Исключительно учебный код.

11. 22.10.10 13:52 От: ааап

вапвапвпвпв

Ваш комментарий

Обсудить на форуме?

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