Пример статистической продукции, которая может подсчитывать посетителей и записывать количество посещений, IP и время. Друзья, которым это нужно, могут обратиться к нему.
Я сделала сайт, и конечно, как и все, поставила на него счетчик, продолжала читать счетчик каждый день, что меня очень обрадовало, но потом я подумала, кто же вообще видел мой сайт? друзья или старые друзья? Не знаю, сколько раз они приходили, но мне все равно хотелось их всех пронумеровать, поэтому я подал заявку на бесплатную статистику, но после смены N номеров подряд меня все равно не устроило. Увы, похоже, только так. иметь достаточно еды и одежды - это сделать это самому. Просто сделай это, я все еще надеюсь, что эксперты посмеются над этим и не попросят совета.
В качестве примера я взял библиотеку ACCESS . Фактически, чтобы использовать библиотеку SQL SERVER, вам нужно всего лишь изменить оператор ссылки библиотеки.
Структура библиотеки следующая.
Имя файла библиотеки: CONT.ASP Первоначально это был CONT.MDB, но после сборки расширение было изменено на ASP, чтобы предотвратить загрузку библиотеки.
Имя таблицы: вкладка
Описание типа данных имени поля
ID Автоматически нумеровать номер посетителя
IP-текст используется для записи IP-адреса посетителя.
Дата и время dat1 используются для записи последнего посещения посетителем
Дата и время dat используются для записи времени первого посещения посетителя
Номер CS, целое число, используемое для записи количества посещений посетителя.
Программа очень проста, состоит всего из двух файлов: dispcont.asp используется для отображения статистических результатов, а contpage.asp — для статистической информации.
Давайте сначала посмотрим на статистику CONTPAGE.ASP. Код выглядит следующим образом:
- <%SetConn=Server.CreateObject(ADODB.Connection)
- Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};
- Conn.Openconnstr'***** Приведенный выше оператор используется для подключения к библиотеке, а cont.asp — это имя файла библиотеки.
- keren=request.cookies(keren)'Читать файлы cookie, имя файлов cookie: керен, хаха. . «Е» А Ю — плохое литературное слово, и он умеет использовать только пиньинь.
- ifkeren=then' определяет, является ли Cookies пустым. Если оно пустое, то это должен быть новый друг, в противном случае это старый друг.
- sql=SELECT*FROMtabwhereid=-1
- setrs=server.createobject(ADODB.Recordset)
- rs.Opensql,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*FROMtabwhereid=&keren'Идем в библиотеку и находим запись нашего старого друга
- setrs=server.createobject(ADODB.Recordset)
- rs.Opensql,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'Закройте объект набора записей.
- setconn=nothing' освобождает conn. Я все же считаю, что соединение должно открываться и закрываться в любой момент, ставить его в SESSION думаю крайне нежелательно. 4%〉
Хорошо, запись готова. В ней более двадцати строк кода, и это очень простая небольшая программа.
Как разместить программу на странице после того, как она написана? Это очень просто. Просто найдите место на главной странице и добавьте следующую строку кода: <img src=contpage.asp width=0 height=0>.
Следующий шаг — показать рекорды. Есть много людей, которые могут добиться большего, чем Аю, но я все равно хочу продемонстрировать свое уродство.
Имя файла: dispcont.asp, смотрите код:
- <%
- SetConn=Server.CreateObject(ADODB.Connection)
- Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};
- Conn.Openconnstr'***** Приведенный выше оператор используется для подключения к библиотеке, а cont.asp — это имя файла библиотеки.
- страница3 = запрос (страница)
- ifpage3=thenpage3=session(contpag)'Количество страниц, текущая страница
- еслистраница3=тостраница3=1
- па=запрос(па)
- ifpa=thenpa=session(contpa)'Количество показов на странице
- ifpa=thenpa=15' по умолчанию отображает 15 элементов на странице, которые можно изменить произвольно.
- сеанс (contpag) = страница3
- сеанс (contpa) = год
- Pages=pa'Отображать количество страниц на странице******************Вышеуказанная программа используется для реализации функции пейджинга.
- SQL=SELECT*FROMtaborderby-dat,-id
- димры
- Setrs=Server.CreateObject(ADODB.RecordSet)
- rs.Opensql,conn,1,1
- csi=0
- cs1=0
- cs100=0
- csdat1=0
- do whilenotrs.eof
- csi=csi+rs(cs)
- ifrs(cs)=1thencs1=cs1+1
- ifrs(cs)〉=100thencs100+1
- ifdatevalue(rs(dat))=datethen
- csdat1=csdat1+1
- конец
- rs.movenext
- петля
- ZS=RS.RECORDCOUNT
- '********************************************** * ***8Для постраничного отображения используется следующая программа.
- %〉
- <голова>
- 〈title〉Отличная компьютерная статистика〈/title〉
- </голова>
- 〈bodystyle=font-size:9ptbgcolor=#D8EDF8〉
- Всего имеется записей 〈%Response.Writezs%〉. Текущая страница — 〈%Response.Writepage3%〉. На каждой странице отображается: [〈ahref=dispcont.asp?pag=〈%=page3%〉&pa=15〉15. ], [<ahref=dispcont. asp?pag=〈%=page3%〉&pa=20〉20] элементов, [〈ahref=dispcont.asp?pag=〈%=page3%〉&pa=30〉30] элементов, [〈ahref=dispcont.asp? pag=〈%=page3%〉&pa=40〉40]
- [〈ahref=dispcont.asp〉Обновить]
- 〈divalign=влево〉
- 〈tableborder=0cellpadding=0style=font-size:9pt〉
- 〈tr〉〈td〉Номер страницы〈/td〉〈%page2=1
- fori=1tozssteppages
- еслистраница3=cstr(страница2),то
- %〉〈td〉[〈%Response.Writepage2%〉]〈/td〉
- <%еще%>
- 〈td〉〈ahref=dispcont.asp?pag=〈%Response.Writepage2%〉〉[〈%Response.Writepage2%〉]〈/td〉
- <%endif
- страница2=страница2+1
- следующий
- sn=pages*(page3-1)'Номер текущей записи=количество отображаемых на странице*количество страниц-количество отображаемых на странице
- еслисн〉zsthensn=0
- rs.movesn,1
- '************************************Вышеуказанный абзац используется для пейджинговой связи.
- %〉〈/tr〉〈/таблица〉
- 〈/div〉〈tablestyle=font-size:9ptwidth=100%bordercolorlight=#000000border=1bordercolordark=#FFFFFFbgcolor=#A4D1E8cellspacing=0cellpadding=3〉
- 〈tr〉〈td〉Номер〈/td〉〈td〉Последняя посещенная домашняя страница〈/td〉〈td〉IP-адрес последнего посещения〈/td〉〈td〉Количество домашних страниц〈/td〉〈td〉Дата первого посещения〈/td 〉 〈/tr〉〈%
- fori=1topages
- Response.Write〈/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〉
- Response.Write〈/tr〉
- rs.movenext
- ifrs.eofthenexitfor
- следующий
- RS.закрыть
- %〉
- 〈tr〉〈td〉Total〈%=zs%〉〈/td〉〈td〉Есть те, кто посетил более 100 раз〈%=cs100%〉〈/td〉〈td〉Есть те, кто посетил 1 : 〈%=cs1%〉〈/td〉〈td〉Общее количество посещений 〈%=csi%〉〈/td〉〈td〉Сегодняшние посещения: 〈%=csdat1%〉〈/td〉〈/tr〉
- </стол>
Вышеупомянутое представляет собой полный пейджинговый дисплей, который можно скопировать и использовать (примечание: ситуация, когда нет записи, не рассматривается, как говорится, только сделав это самостоятельно, можно иметь достаточно еды и одежды, так что поторопитесь). попробуйте!