Вторник, 20.08.02, 12:33
Обновлена - 19.12.00, 16:04


</>
Российский клуб вебмастеров
ISPserver.Com   


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


Первая страница > Библиотека > Языки программирования > ASP

Евгений Кондратов (aka Udjin)

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

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

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

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

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

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

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

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

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.

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

  1. Создайте текстовый файл c:/mycount.txt
  2. Для инициализации счетчика укажите в текстовом файле начальное значение. На пример 0.
  3. В тело вашей страницы впишите следующий код:
<%  
'Декларирование переменных   
   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  
%>

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



Как вам понравился этот материал?





Вернуться: обратно в библиотеку в Холл


</>
Российский клуб вебмастеров
ISPserver.Com   


Поиск | Карта сайта | Библиотека | F.A.Q.'s | Семинары | Учебная | Детская | Бесплатное | Кладовая
Новости Сети | Рассыльный | Рейтинги | Статистика | Галерея | Игровая | Комната смеха
Конференц-зал | Для членов | Персоналии | Биржа труда | База проектов | Подписка


  Copyright (c) 1997-1999 ВебКлуб
Email: webclub@webclub.ru
Оригинальная идея Андрей Новиков
Хостинг предоставлен Веб 2000