Пример статистического производства, который может подсчитывать посетителей и записывать количество посещений, IP-адрес и время.
Я сделал сайт www.zydn.net, конечно, как и все, я тоже поставил на него счетчик, увидел, что счетчик крутится каждый день, и почувствовал себя очень счастливым. Но потом я подумал, кто же это прочитал. это? Мой сайт? Это новые друзья или старые друзья? Я не знаю, сколько раз они приходили, а мне хотелось их всех пронумеровать, поэтому я подал заявку на бесплатную статистику, но попробовал N номеров подряд и все равно не удовлетворился. Увы, похоже, это единственный способ иметь. достаточно еды и одежды, чтобы сделать это самому. Просто сделай это сухо, уровень вонючий, надеюсь, эксперты посмеются над этим, и я не буду просить совета.
В качестве примера я взял библиотеку ACCESS. Фактически, чтобы использовать библиотеку SQL SERVER, вам нужно всего лишь изменить оператор ссылки библиотеки.
Структура библиотеки следующая.
Имя файла библиотеки: CONT.ASP Первоначально это был CONT.MDB, но после сборки расширение было изменено на ASP, чтобы предотвратить загрузку библиотеки.
Имя таблицы: вкладка
Описание типа данных имени поля
ID Автоматически нумеровать номер посетителя
IP-текст используется для записи IP-адреса посетителя.
Дата и время dat1 используются для записи последнего посещения посетителем
Дата и время dat используются для записи времени первого посещения посетителя
Номер CS, целое число, используемое для записи количества посещений посетителя.
Программа очень проста, состоит всего из двух файлов: dispcont.asp используется для отображения статистических результатов, а contpage.asp — для статистической информации.
Давайте сначала посмотрим на статистику CONTPAGE.ASP. Код выглядит следующим образом:
<%
Установить Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Драйвер Microsoft Access (*.mdb)};
Conn.Open connstr '*****Приведенный выше оператор используется для подключения к библиотеке, cont.asp — это имя файла библиотеки.
keren=request.cookies(keren) 'Чтение файлов cookie, имя файлов cookie: керен, хаха. . Э из А Ю — литературный мерзавец, и он знает только, как использовать пиньинь.
if keren= then 'Определить, пуст ли файл Cookes. Если он пуст, то это должен быть новый друг, в противном случае это старый друг.
sql=SELECT * FROM вкладка, где id=-1
установите rs=server.createobject(ADODB.Recordset)
rs.Open sql,conn, 1, 3
rs.addnew 'Если это новый посетитель, добавьте новую запись в библиотеку.
rs(cs)=1 'Запомнить количество посещений как 1
rs(ip)=request.servervariables(remote_addr) 'Запомните IP,
rs(dat)=now 'Запомнить текущую дату и время,
rs(dat1)=date 'Запомните текущую дату и используйте ее в качестве даты первого посещения позже.
response.cookies(keren)=rs(id) 'Запишите файл cookie, его содержимое совпадает с идентификатором.
response.cookies(keren).expires=date+365 'Установите дату действия файлов cookie, начиная с настоящего момента, 365 дней,
else 'Выше написано, как вести себя с новыми друзьями. Что нам делать со старыми друзьями? Смотрите ниже:
sql=SELECT * FROM tab где id=&keren 'Перейти в базу данных, чтобы найти записи наших старых друзей
установите rs=server.createobject(ADODB.Recordset)
rs.Open sql,conn, 1, 3
rs(cs)=rs(cs)+1 'Хорошо, нашел, прибавь 1 к количеству посещений
rs(ip)=request.servervariables(remote_addr) 'Посмотрите его IP и запишите его.
rs(dat)=now 'Запомнить текущее время, то есть время последнего посещения,
response.cookies(keren)=rs(id) 'Снова запишите файлы cookie. Не знаю, является ли это предложение лишним, я не пробовал.
response.cookies(keren).expires=date+365 'Установите срок действия файла cookie, чтобы я не узнал его по истечении одного года.
конец, если
rs.update 'Все, что следует отметить, я записал, давайте обновим библиотеку.
rs.close 'Закройте объект набора записей.
set conn=nothing 'Отпустите conn, я все равно считаю, что соединение должно открываться и закрываться в любой момент, я считаю, что крайне нежелательно ставить его в SESSION. 4
%>
Ладно, запись готова. Здесь более 20 строк кода. Это очень простая маленькая программа, но я думаю, что у знатоков должны быть умные трюки. Друзья, у которых есть хитрые трюки, не забудьте научить Аю.
Как только программа будет написана, как мне разместить ее на странице? Это очень просто: просто найдите место на главной странице и добавьте следующую строку кода: <img src=contpage.asp width=0 height=0>.
Следующий шаг — показать рекорды. Есть много людей, которые могут добиться большего, чем Аю, но я все равно хочу продемонстрировать свое уродство.
Имя файла: dispcont.asp, смотрите код:
<%
Установить Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Драйвер Microsoft Access (*.mdb)};
Conn.Open connstr '*****Приведенный выше оператор используется для подключения к библиотеке, cont.asp — это имя файла библиотеки.
страница3 = запрос (страница)
if page3= then page3=session(contpag) 'Количество страниц, текущая страница
если страница3=, то страница3=1
па=запрос(па)
if pa= then pa=session(contpa) 'Отображать количество на странице
if pa= then pa=15 'По умолчанию на каждой странице отображается 15 элементов, которые можно произвольно изменять.
сеанс (contpag) = страница3
сеанс (contpa) = год
Pages=pa 'Отображать количество страниц на странице******************Вышеуказанная программа используется для реализации функции пейджинга.
SQL=SELECT * FROM порядок вкладок по -dat,-id
димры
Установите rs=Server.CreateObject(ADODB.RecordSet)
rs.Open sql,conn,1,1
csi=0
cs1=0
cs100=0
csdat1=0
делай, пока не rs.eof
csi=csi+rs(cs)
если rs(cs)=1, то cs1=cs1+1
если rs(cs)>=100, то cs100+1
если datevalue(rs(dat))=дата тогда
csdat1=csdat1+1
конец, если
rs.movenext
петля
ZS=RS.RECORDCOUNT
'********************************************** * ***8Для постраничного отображения используется следующая программа.
%>
<голова>
<title>Отличная компьютерная статистика</title>
</голова>
<body style=font-size: 9pt bgcolor=#D8EDF8>
Всего существует <%Response.Write zs%> записей, а текущая страница — <%Response.Write page3%>. На каждой странице отображается: [<a href=dispcont.asp?pag=<%=page3%>. &pa=15>15 ] элементов, [<a href=dispcont.asp?pag=<%=page3%>&pa=20>20] элементов, [<a href=dispcont.asp?pag=<%=page3%>&pa=30>30] элементов, [<a href=dispcont.asp?pag=<%=page3%>&pa=40>40] элементов
[<a href=dispcont.asp>Обновить]
<div выравнивание=влево>
<table border=0 cellpadding=0 style=font-size: 9pt>
<tr><td>Номер страницы</td><%page2=1
для страниц шагов от i=1 до zs
если страница3=cstr(страница2), то
%><td >[<%Response.Write page2%>]</td>
<% еще %>
<td ><a href=dispcont.asp?pag=<%Response.Write page2%>>[<%Response.Write page2%>]</td>
<% конец, если
страница2=страница2+1
следующий
sn=pages*(page3-1) 'Номер текущей записи=количество отображаемых на странице*количество страниц-количество отображаемых на странице
если sn>zs, то sn=0
rs.move sn,1
'************************************Вышеуказанный абзац используется для пейджинга.
%> </tr></table>
</div> <table style=font-size: 9pt width=100% bordercolorlight=#000000 border=1 bordercolordark=#FFFFFF bgcolor=#A4D1E8 cellpacing=0 cellpadding=3>
<tr><td>Количество</td><td>Последняя посещенная домашняя страница</td><td>Последний посещенный IP-адрес</td><td>Количество домашних страниц</td><td>Дата первого посещения</td > </tr><%
для i=1 на страницах
Ответ.Запись </tr>
Response.Write <td>&rs(ID)&</td>
Response.Write <td>&rs(dat)&</td>
Response.Write <td>&rs(IP)&</td>
Response.Write <td>&rs(CS)&</td>
Response.Write <td>&rs(DAT1)& </td>
Ответ.Запись </tr>
rs.movenext
если rs.eof, то выходим для
следующий
RS.закрыть
%>
<tr><td>Всего<%=zs%></td><td>Количество посещений больше 100 раз<%=cs100%> </td><td>Количество посещений 1:< % =cs1%></td><td>Общее количество посещений<%=csi%></td><td>Посещения сегодня: <%=csdat1%></td></tr>
</таблица>
'****************************** Выше приведено полное отображение с разбивкой на страницы, которое можно использовать после копирования всего. Случай, когда нет ни одной записи, не рассматривается.