ФорумыТемы

Новое сообщение

Сообщения темы 'ASP. Запись статистики сайта в файл'

Фильтр:
содержит   Сортировка   

  

gliba 09.06.2007 22:16
Зачастую вебмастер хочет показывать некоторую статистику сайта, например, число посетителей, число фотогалерей и т.д. Сбор статистики может предъявлять высокие требования по использованию системных ресурсов и/или требовать много времени. В таком случае целесообразно проводить сбор статистики по таймеру или cron'у, писать результаты в файл. На страницах пользователей просто его отображать. Код в ASP иллюстрирует этот подход.

Код


<%@ Language=VBScript %>
<%
dim cn, cmd, rs, sql, sRealDir, fso, ts, day, month, sName, sNew

sRealDir = Server.MapPath( "/stat" )

Set fso = Server.CreateObject("Scripting.FileSystemObject")

sName = sRealDir & "stat.inc"
if fso.FileExists( sName ) then 
'rename existing
	day = DatePart( "d", dt1 )
	if len( day ) < 2 then day = "0" & day
	month = DatePart( "m", dt1 )
	if len( month ) < 2 then month = "0" & month
	sNew = "stat"  & DatePart( "yyyy", dt1 ) & month & day & ".inc"
	call fso.MoveFile( sName, sRealDir & sNew )
end if

Set ts = fso.OpenTextFile( sName, 2, True)	'ForWriting

call openConnection()

ts.Write "<table align='center' cellspacing='0' cellpading='3'><tr>" & Chr(10)

sql = "SELECT count(*) AS cnt FROM tblUser WHERE status > 0"
cmd.CommandText = sql
rs.Open cmd
if not rs.EOF then
	ts.Write "<td><b>студенты</b>: " & rs("cnt") & "</td>" & Chr(10)
end if
rs.Close

sql = "SELECT count(*) AS cnt FROM tblProductSlide"
cmd.CommandText = sql
rs.Open cmd
if not rs.EOF then
	ts.Write "<td><b>фотослайды</b>: " & rs("cnt") & "</td>" & Chr(10)
end if
rs.Close

ts.Write "</tr></table>" & Chr(10)

call closeConnection()

ts.Close
Set fso = nothing

sub openConnection()
	set cn = Server.CreateObject("ADODB.Connection")
	cn.ConnectionTimeout = 60
	cn.ConnectionString = sConnectionString
	cn.Open

	set cmd = Server.CreateObject("ADODB.Command")
	cmd.ActiveConnection = cn
	cmd.CommandType = adCmdText

	set rs = Server.CreateObject("ADODB.Recordset")
end sub

sub closeConnection()
	cn.Close  
	set cmd = nothing
	set rs = nothing
	set cn = nothing
end sub
%>




Комментарии

Создаем объект для работы с файловой системой. Проверяем наличие файла 'stat.inc' в директории /stat. Есть файл существует, переименовываем его. Открываем новый файл 'stat.inc' для записи. Открываем соединение с базой данных. Посылаем несколько запросов к базе. Результаты пишем в файл (при его открытии в броузере отобразится табличка с собранными данными). Закрываем соединение. Закрываем файл.
  



Новое сообщение
 

Послать уведомление по e-mail

Продолжить


Авторизоваться через https://www.pvobr.ru
Логин
Пароль
Регистрация

Авторизоваться через соцсети
Наверх