Home
Главная
Forums
Форум
Your Account
Ваш аккаунт
Web-технологии
HTML, XML, DHTML
JavaScript
SQL
PHP
Perl
SSI
ASP
CSS

Графика
Adobe PhotoShop
Adobe PhotoShop - 2
Macromedia Flash

Компьютеры
Hardware
Мобильные технологии
КПК и ноутбуки

Операционные системы
Unix/Linux
Windows 9x
Windows XP

Стоит посмотреть
  • Студия CLEX.RU - создание сайтов раскрутка оптимизация в СПб - быстро и качественно


  • спасские ворота каско каско






  • Создание системы учета посещений

    У вас может возникнуть вопрос, зачем это нужно? Свои услуги предлагают более десятка российских и огромное множество иностранных систем статистики. Так зачем лишний раз напрягаться, писать и отлаживать скрипты, создавать базы и, вообще, совершать какие-либо телодвижения, когда, потратив 10 минут, мы получим полноценную систему статистики, которая предлагает нам, просто, безграничное количество данных о пользователях нашего сайта?

    Причин две. Во-первых, "внешняя" система статистики создают ощутимую задержку в загрузке страницы. Во-вторых, одному интересно узнать больше о графической системе пользователя, другому - о версиях браузера, а третьему - время проведенное пользователем на его сайте. Но, как оказывается, одна система дает инормацию о графической системе, вторая - о времени посещений, третья - вообще, не дает такой инормации, зато наиболее точно считает количество посетителей. Что делать? Вот и начинаем мы с вами ставить на страницу один, два, а потом и все пять счетчиков, после чего, время загрузки полезной информации составит не более 10% от времени загрузки сайта. Это приведет к тому, что посетитель плюнет и уйдет (интернет-то большой) или информации о нем не попадет в системы статистики. Вот тут-то мы и приходим к осознанию того, что система нужна своя.

    Какие преимущества это дает? Во-первых, скорость загрузки. Цифры статистики можно вывести текстом, что не задержит загрузку, а обработка статистики будет производится на том же сервере, что и страница, что не внесет дополнительных задержек на установление связи с удаленным сервером. Во-вторых, такая система, изначально, будет соответствовать нашим запросам. Хотим - будем учитывать параметры графической системы пользователей, хотим - будем считать, сколько раз пришел за последние 15 секунд Вася Пупкин. В-третьих, так как такая система является неотъемлемой частью сайта, то не будет потеряно ни одного хита!

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

    Для реализации подобной системы я использовал слудующее программное обеспечение:

    Базы данных: mySQL
    Скрипт: PHP
    Вебсервер: Apache.

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

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

    hits: Хранит подробную информацию о хитах за текущий день. Содержит следующие поля:

    ИмяКомментарий
    hostбуквенное имя домена пользователя
    addrIP адрес пользователя
    referer ссылка, по которой пришел пользователь
    pageна какую страницу сайта пришел пользователь
    timestвремя хита.

    hitsbypage: хранит инормацию за весь период по посещениям страниц сайта. Содержит следующие поля:

    ИмяКомментарий
    page страница
    hits количество хитов
    hosts количество хостов

    referers: хранит информацию о ссылках, по которым приходят на сайт. Содержит следующие поля:

    ИмяКомментарий
    href собственно, ссылка
    hits количество посещений с этой ссылки

    hitsbydate: хранит информацию о хитах и хостах по дням. Содержит следующие поля:

    ИмяКомментарий
    date дата
    hits количество хитов
    hosts количество хостов

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

    ПеременнаяЗначение
    $REQUEST_URI адрес запрашиваемой страницы
    $REMOTE_HOST домен пользователя (если установлен)
    $REMOTE_ADDR IP адрес пользователя
    $HTTP_REFERER Ссылка, по которой пришел пользователь (если таковая была, т.е. пользователь не набрал адрес сайта в браузере или выбрал из списка избранных сайтов)

    Теперь рассмотрим логику работы самой системы.

    Проверяем, не является ли значение поля $HTTP_REFERER новым (не содержится в таблице referers). Если новое, то добавляем его в нужную таблицу и устанавливаем количество хитов для него в 1. Если такая ссылка уже была, то, просто, увеличиваем количество хитов.

    Аналогичным образом проверяем адрес запрашиваемой страницы.

    Далее проверяем, были ли хиты сегодня. Если хитов небыло, значит, начался новый день и это первое посещение сегодня. Следовательно, удаляем все данные из таблицы hits, так как хранить всю информацию в ней нерентабельно. Затем вносим новую дату в таблицу hitsbydate и устанавливаем количество хитов и хостов для данной даты в 1. Если же новый день еще не наступил, то, проверив, не является ли IP адрес уникальным на сегодня, увеличиваем поля hits и hosts в таблице hitsbydate.

    И, наконец, заносим информацию в таблицу hits.

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



    Дополнительно на данную тему:

    Работа с Cookies на PHP
    PHP и Web. Кэширование
    PHP и всё такое....html
    Построение дерева иерархии с помощью PHP / MySQL
    Система 'Совет дня'. Часть 1
    Система
    Система Совет дня. (Часть 3)
    Как выучить PHP
    Способы защиты сайта от скачивания
    Модульное программирование на PHP или как написать маленький портал

    Назад | Начало | Наверх
    Rambler's Top100