방문자 수와 방문횟수, IP, 시간 등을 기록할 수 있는 통계작성 예시입니다. 필요한 친구들이 참고할 수 있습니다.
나는 웹사이트를 만들었고, 물론 다른 사람들처럼 거기에도 카운터를 뒀습니다. 매일 카운터를 읽고 있었는데, 그러다 보니 도대체 누가 내 웹사이트를 보았는가 하는 생각이 들었습니다. 친구야, 아니면 오랜 친구야? 몇번이나 왔는지는 모르겠지만 그래도 다 번호를 매겨보고 싶어서 무료통계를 신청했는데 N번을 연속으로 바꿔봐도 만족스럽지 못한게 아쉽네요. 음식과 의복이 충분하다는 것은 스스로하는 것입니다. , 그래도 전문가들이 조언을 구하지 않고 비웃기를 바랍니다.
ACCESS 라이브러리를 예로 들었습니다. 실제로 SQL SERVER 라이브러리를 사용하려면 링크 라이브러리의 문만 변경하면 됩니다.
라이브러리 구조는 다음과 같습니다
라이브러리 파일명 : CONT.ASP 원래는 CONT.MDB였지만, 빌드 후 라이브러리 다운로드를 방지하기 위해 확장자를 ASP로 변경했습니다.
테이블 이름: 탭
필드 이름 데이터 유형 설명
ID 방문자의 번호를 자동으로 부여합니다.
IP 텍스트는 방문자의 IP를 기록하는 데 사용됩니다.
dat1 날짜 및 시간은 방문자가 마지막으로 방문한 시간을 기록하는 데 사용됩니다.
날짜와 시간은 방문자의 첫 방문 시간을 기록하는 데 사용됩니다.
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)'쿠키를 읽어보세요. 쿠키 이름은 keren, ㅎㅎ. . 아유의 E는 문학적으로 좋지 않은 단어이고, 그는 병음만 사용할 줄 안다.
- ifkeren=then'은 cookes가 비어 있는지 여부를 결정합니다. 비어 있으면 새 친구여야 하며, 그렇지 않으면 오래된 친구입니다.
- sql=SELECT*FROMtabwhereid=-1
- setrs=server.createobject(ADODB.Recordset)
- rs.Opensql,콘,1,3
- rs.addnew'신규 방문자라면 라이브러리에 새 기록을 추가하세요.
- rs(cs)=1'방문 횟수를 1로 기록합니다.
- rs(ip)=request.servervariables(remote_addr)' IP를 기록해 두고,
- rs(dat)=now'현재 날짜와 시간을 기억하고,
- rs(dat1)=날짜'현재 날짜를 기억해두었다가 향후 첫 방문 날짜로 활용하세요.
- response.cookies(keren)=rs(id)'쿠키를 작성하며, 내용은 ID와 동일합니다.
- response.cookies(keren).expires=date+365'쿠키의 유효기간을 지금부터 365일로 설정하고,
- else'위는 새로운 친구를 대하는 방법입니다. 오래된 친구를 어떻게 해야 할까요? 아래 시청:
- sql=SELECT*FROMtabwhereid=&keren'오랜 친구의 기록을 찾으러 도서관으로 가세요
- setrs=server.createobject(ADODB.Recordset)
- rs.Opensql,콘,1,3
- rs(cs)=rs(cs)+1'알았어 찾았어 방문수에 1을 더해줘
- rs(ip)=request.servervariables(remote_addr)'그 사람의 IP가 무엇인지 확인하고 적어주세요.
- rs(dat)=now'마지막 방문 시간인 현재 시간을 기억하고,
- response.cookies(keren)=rs(id)' 그런 다음 쿠키를 작성합니다. 이 문장이 중복되는지는 모르겠지만 시도하지 않았습니다.
- response.cookies(keren).expires=date+365'1년이 지나면 인식하지 못하도록 쿠키 만료시간을 설정해 주세요.
- 엔디프
- rs.update' 적어야 할 내용을 모두 적어두었으니 라이브러리를 업데이트해 보겠습니다.
- rs.close'레코드세트 개체를 닫습니다.
- setconn=nothing'은 conn을 해제합니다. 저는 여전히 연결을 언제든지 열고 닫아야 한다고 생각합니다. SESSION에 넣는 것이 가장 바람직하지 않다고 생각합니다. 4%〉
자, 기록이 완료되었습니다. 20줄이 넘는 코드가 있고 매우 간단한 작은 프로그램입니다.
프로그램을 작성한 후 페이지에 넣는 방법은 매우 간단합니다. 홈페이지에서 <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는 라이브러리 파일 이름입니다.
- page3=요청(페이지)
- ifpage3=thenpage3=session(contpag)'페이지 수, 현재 페이지
- ifpage3=thenpage3=1
- pa=요청(pa)
- ifpa=thenpa=session(contpa)'페이지당 디스플레이 수
- ifpa=thenpa=15'는 기본적으로 페이지당 15개의 항목을 표시하며 임의로 변경할 수 있습니다.
- 세션(contpag)=page3
- 세션(계속)=pa
- 페이지=pa'페이지당 표시 수******************위 프로그램은 페이징 기능을 구현하는 데 사용됩니다.
- SQL=SELECT*FROMtaborderby-dat,-id
- 조광기
- Setrs=Server.CreateObject(ADODB.RecordSet)
- rs.Opensql,콘,1,1
- csi=0
- cs1=0
- cs100=0
- csdat1=0
- dowhilenotrs.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.레코드카운트
- '************************************************ * ***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=1tozs단계
- ifpage3=cstr(페이지2)그러면
- %〉〈td〉[〈%Response.Writepage2%〉]〈/td〉
- <%또 다른%>
- 〈td〉〈ahref=dispcont.asp?pag=〈%Response.Writepage2%〉〉[〈%Response.Writepage2%〉]〈/td〉
- <%endif
- 페이지2=페이지2+1
- 다음
- sn=페이지*(page3-1)'현재 레코드 번호=페이지 당 표시 수*페이지 수-페이지 당 표시 수
- ifsn〉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=1페이지
- 응답.쓰기〈/tr〉
- 응답.쓰기〈td〉&rs(ID)&〈/td〉
- 응답.쓰기〈td〉&rs(dat)&〈/td〉
- 응답.쓰기〈td〉&rs(IP)&〈/td〉
- 응답.쓰기〈td〉&rs(CS)&〈/td〉
- 응답.쓰기〈td〉&rs(DAT1)&〈/td〉
- 응답.쓰기〈/tr〉
- rs.movenext
- ifrs.eofthenexitfor
- 다음
- RS.닫기
- %〉
- 〈tr〉〈td〉Total〈%=zs%〉〈/td〉〈td〉100회 이상 방문해 주신 분들이 있습니다〈%=cs100%>〈/td>〈td〉100회 이상 방문해 주신 분들이 있습니다 : 〈%=cs1%〉〈/td〉〈td〉 총 방문수 〈%=csi%〉〈/td〉〈td〉 오늘의 방문수: 〈%=csdat1%〉〈/td〉〈/tr〉
- </테이블>
위는 복사하여 사용할 수 있는 완전한 페이징 표시입니다(참고: 기록이 없는 상황은 고려되지 않음). 속담처럼 직접 해야 음식과 의복이 충분하므로 서둘러야 합니다. 그것을 시험해보십시오!