Пишем счетчик посещений

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

Что такое счетчик? Счетчик - такая программка-скриптик, которая подсчитывает количество посещений сайта, т.е. количество загрузок этого сайта в браузеры пользователей.

Самый простой счетчик выглядит примерно так:
при запросе к серверу, т.е. еще перед загрузкой сайта в браузер, скрипт обращается к некоторому файлу-счетчику, в котором хранится число - количество посещений, - получает это число и увеличивает на еденицу. Потом стирает файл и записывает в него новое увеличенное значение. Таким образом при каждом посещении сайта значение счетчика увеличивается.

Такое положение вещей нас, конечно, не устраивает, потому что при посещении сайта одним человеком счетчик скорее всего увеличится не на один, а на все пятьдесят (при условии, что этот человек решит пройтись по страничкам вашего ресурса). Но есть способы обойти эту "проблему".

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

если(нет сессии){создать сессию; увеличить значени счетчика;}
если(сессия)продолжить сессию;

Теперь расскажу о том, как написать счетчик, отображающий количество посетителей за:

- сегодня
- месяц
- всего

Сначала создается база данных (далее - БД), состоящая из одной записи с одним полем. Его значение - 0.

Далее по вышеописанному алгоритму в БД вносятся новые записи, содежащие текущую дату в формате год.номерМесяца.деньМесяца. Так можно подсчитать сколько загрузок было произведено сегодня и за текущий месяц. Т.е. скрипт проходит по всем записям и сравнивает их значения-даты. Но как только он натыкается на очередную запись, месяц которой не совпадает с текущим, он удаляет все записи начиная с этой и до второй включительно, подсчитывая их количество. К первой записи он добавляет это количество. Так получается, что нетрудно определить и количество посещений сайта в целом, с начала его существования, а точнее с начала существования счетчика.

А теперь то, как это выглядит.

если(нет БД){создать БД;создать запись с одним полем - 0;}
открыть БД;
День=0;
Месяц=0;
Остальные=прочитать первую запись;
если(нет сессии){добавить запись - текущую дату;создать сессию;}
иначе продолжить сессию;
в цикле от последней даты до второй{
прочитать запись;
д=день записи;
м=месяц записи;
если(м==текущий месяц)Месяц++;иначе остановить цикл;
если(д==текущий день)День++;
}
если(цикл остановился){
в цикле от текущей записи /*на которой остановились*/ до второй{
удалить запись;
Остальные++;
}
переписать первую запись значением Остальные;
}

Счетчик с примерно таким алгоритмом висит на WebFashion. Как видно, алгоритм очень простой и в тоже время полезный.

Автор статьи: Фролов Станислав.

Adblock
detector