WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Знакомство с ASP: счетчик для IIS за 5 минут. Часть 1

Знакомство с ASP: счетчик для IIS за 5 минут. Часть 1


Дата публикации: 17-03-2013

В данной статье будут рассмотрены варианты создания счетчиков для сайтов построенных на базе IIS 3, 4, 5, PWS, GoAhead. Для некоторых счетчиков - любой сервер поддерживающий работу со скрипт - машинами Windows с помощью различных расширений и модулей.(Chili-ASP, ActivePerl). При написании статьи использованы материалы с  сайтов:

    Microsoft
    www.activeserverpages.ru
    Документация к IIS

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

Классификация.
По признаку своей функциональности счетчики можно подразделить на счетчики:

    с накоплением;
    в рамках сессии;
    с элементами персонификации;
    с возможностью дальнейшего анализа информации о клиенте;

По способу хранения информации:

    хранение в переменных сессии (приложения);
    хранение в файле на стороне сервера;
    хранение в файле на стороне клиента;
    хранение в базе данных;
    комбинированные;

По способу визуализации:

    текстовые;
    графические;
    информеры ( как комбинация первых двух );

Cчетчик от Microsoft.
Возможности: счетчик с накоплением, поддержка "виртуальных" сайтов, отдельных asp-страниц.

Для создания данного счетчика необходимо с сайта Microsoft скачать серверный компонент PageCounter и установить его. Весь код счетчика оформлен в виде ISAPI-dll (распространяется вместе с исходными текстами) и число обращений к конкретной странице  или инициалиазация/сброс счетчика вызываются  как метод серверного объекта PageCounter.

Для установки счетчика на сервер необходимо скопировать PageCnt.dll в каталог /InetPub/ASPSamp/Components/PageCnt/DLL/i386 и зарегистрировать его: regsvr32 PageCnt.dll В случае, если Вы планируете подсчитывать обращения к нескольким виртуальным сайтам, Вам необходимо конфигурировать их как приложения.

Счетчик поддерживает 2 метода HITS и RESET

Код инициализации счетчика для конкретного сайта:
Распологать его лучше всего в верхней части страницы, в первых строках.

<%
   Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
   HitMe = MyPageCounter.Hits
%>

Отображение количества заходов:
Данный фрагмент размещайте сообразуясь с дизайном своего сайта.
<% =HitMe %>

Для подсчета на конкретной странице сайта код несколько изменится:
<%
   Set MyPageCount = Server.CreateObject("IISSample.PageCounter")
   MyPageCount.PageHit
   HitMe = MyPageCount.Hits
%> <%    =HitMe %>
или
<%    Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
%>

This Web page has been viewed <%= MyPageCount.Hits %> times.

<P>
Page Myscript.asp has been viewed <%= MyPageCounter.Hits("/VirtualDir1/Myscript.asp") %> times.

Для того, чтобы запустить счетчик с какого-либо начального значения (12345) используйте следующий код:

<% 
   =HitMe + 12345 
%>

 

Сброс счетчика (RESET).

<%
   Set MyPageCounter = Server.CreateObject("IISSample.PageCounter")
   MyPageCounter.Reset
   MyPageCounter.Reset("/VirtualDir1/Mypage.asp")
 %>

Простейшиe счетчики.
Возможности: счетчик с накоплением. Хранит информацию о количестве обращений в текстовом файле.

Используется объект VBScript (WSH)  FileSystemObject.

Порядок действий.

    Создайте текстовый файл c:/mycount.txt
    Для инициализации счетчика укажите в текстовом файле начальное значение. На пример 0.
    В тело вашей страницы впишите следующий код:

<% 
'Декларирование переменных  
   Const ForReading = 1, ForWriting = 2, ForAppending = 8 
   Dim fso, f, myCounter 
'Создаем объект 
   Set fso = CreateObject("Scripting.FileSystemObject") 
'открываем файл на чтение, и считываем из него ВСЕ содержимое 
'если файл отсутствует, то создаем его (Trye). 
   Set f = fso.OpenTextFile("c:/mycount.txt", ForReading, True) 
'отключаем обработку ошибок 
   On error resume next 
'считываем содержимое, в случае пустого (Empty)значения 
'присваиваем значение 0 переменной myCounter 
   myCounter = f.readAll 
   If myCounter = Empty  Then  
myCounter = 0 
'если все в порядке, то увеличиваем значение переменной myCounter на 1 
   Else 
myCounter = myCounter + 1 
   End If 
'открываем файл на запись и обновляем значение счетчика 
   Set f = fso.OpenTextFile("c:/mycount.txt", ForWriting, True) 
   f.Write myCounter 
'закрываем файл 
   f.Close 
'очищаем память 
   Set f = nothing 
   Set fso = nothing 
%> 
 
4. В соответствии с дизайном разместите счетчик.

<% 
   = myCounter 
%>

Счетчик с накоплением. Хранит данные в переменных сесии ( приложения ), отображает количество пользователей, находящихся в данный момент на сайте.

В рут - каталоге сайта создайте файл global.asa

Код:

<SCRIPT LANGUAGE=VBScript RUNAT=Server> 
SUB Session_OnStart 
 
   Session.Timeout = 5 
   Application.lock 
   Application("myCounter") = Application("myCounter") + 1 
   Application("visitors") = Application("visitors") + 1 
   Application.unlock 
 
END SUB 
</script> 
 
<SCRIPT LANGUAGE=VBScript RUNAT=Server> 
SUB Session_OnEnd 
 
   Application.lock 
   Application("visitors") = Application("visitors") - 1 
   Application.unlock 
 
END SUB 
</script>

В теле asp-страницы разместите код:

<% 
   Dim vist, currentcount 
   visit = Application("visitors") 
   currentcount =   Application("myCounter") 
%>

В соответствии с дизайном поместите счетчик общего числа обращений/текущего количества пользователей

<% 
   = currentcount & "/" & visit 
%>

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

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Неизвестный автор:

    "Жизнь – как сидение в интернете: смысла нет, а уходить не хочется."

    Опрос

    Какой текстовый редактор Вы используете?

    OpenOffice
    AbiWord
    Notepad++
    UltraEdit
    PSPad
    Microsoft Office
    Microsoft Блокнот
    Другой...