Ein statistisches Produktionsbeispiel, das Besucher zählen und die Anzahl der Besuche, IP und Zeit aufzeichnen kann
Ich habe eine Website erstellt, www.zydn.net. Natürlich habe ich auch einen Zähler darauf angebracht, und ich habe mich sehr gefreut es? Meine Website? Sind es neue oder alte Freunde? Ich weiß nicht, wie oft sie kamen, und ich wollte sie alle nummerieren, also habe ich kostenlose Statistiken beantragt, aber ich habe es mit N Nummern hintereinander versucht und war immer noch nicht zufrieden. Leider scheint das die einzige Möglichkeit zu sein Genug Essen und Kleidung ist es, es einfach selbst zu machen. Es ist trocken, das Niveau ist stinkend, ich hoffe, die Experten werden darüber lachen und ich werde nicht um Rat fragen.
Ich habe die ACCESS-Bibliothek als Beispiel genommen. Um die SQL SERVER-Bibliothek zu verwenden, müssen Sie lediglich die Anweisung der Link-Bibliothek ändern.
Die Bibliotheksstruktur ist wie folgt
Name der Bibliotheksdatei: CONT.ASP Ursprünglich hieß sie CONT.MDB, aber nach der Erstellung wurde die Erweiterung in ASP geändert, um zu verhindern, dass die Bibliothek heruntergeladen wird.
Tabellenname: tab
Beschreibung des Feldnamen-Datentyps
ID Automatische Nummerierung der Besuchernummer
IP-Text wird verwendet, um die IP des Besuchers aufzuzeichnen
Datum und Uhrzeit von dat1 werden verwendet, um den letzten Besuch des Besuchers aufzuzeichnen
Mit Datum und Uhrzeit wird der Zeitpunkt des ersten Besuchs des Besuchers erfasst
CS-Nummer, Ganzzahl, die zum Erfassen der Anzahl der Besucherbesuche verwendet wird
Das Programm ist sehr einfach, mit nur zwei Dateien: dispcont.asp wird zum Anzeigen statistischer Ergebnisse und contpage.asp für statistische Informationen verwendet.
Schauen wir uns zunächst die Statistiken von CONTPAGE.ASP an. Der Code lautet wie folgt:
<%
Setze Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};
Conn.Open connstr '*****Die obige Anweisung wird zum Herstellen einer Verbindung zur Bibliothek verwendet. cont.asp ist der Name der Bibliotheksdatei.
keren=request.cookies(keren) 'Cookies lesen, der Name von Cookies ist: keren, haha. . Ah Yus E ist ein literarischer Stinker und kann nur Pinyin verwenden.
if keren= then 'Bestimmen Sie, ob Cookes leer ist. Wenn es leer ist, muss es ein neuer Freund sein, andernfalls ist es ein alter Freund.
sql=SELECT * FROM tab, wobei id=-1
set rs=server.createobject(ADODB.Recordset)
rs.Open sql,conn, 1, 3
rs.addnew 'Wenn es sich um einen neuen Besucher handelt, fügen Sie einen neuen Datensatz in der Bibliothek hinzu.
rs(cs)=1 'Merken Sie sich die Anzahl der Besuche als 1
rs(ip)=request.servervariables(remote_addr) 'Merken Sie sich die IP,
rs(dat)=now 'Merken Sie sich das aktuelle Datum und die aktuelle Uhrzeit,
rs(dat1)=date 'Merken Sie sich das aktuelle Datum und verwenden Sie es später als Datum des ersten Besuchs.
Response.cookies(keren)=rs(id) 'Schreibe ein Cookie, der Inhalt ist derselbe wie die ID.
Response.cookies(keren).expires=date+365 'Legen Sie das Gültigkeitsdatum von Cookies ab jetzt, 365 Tage, fest.
else „So gehen wir mit neuen Freunden um.“ Was sollen wir mit alten Freunden machen? Sehen Sie sich unten an:
sql=SELECT * FROM tab where id=&keren 'Gehen Sie zur Datenbank, um die Aufzeichnungen unserer alten Freunde zu finden
set rs=server.createobject(ADODB.Recordset)
rs.Open sql,conn, 1, 3
rs(cs)=rs(cs)+1 'Okay, ich habe es gefunden, addiere 1 zur Anzahl der Besuche
rs(ip)=request.servervariables(remote_addr) 'Sehen Sie sich seine IP an und notieren Sie sie.
rs(dat)=now 'Merken Sie sich die aktuelle Zeit, also die Zeit des letzten Besuchs,
Response.cookies(keren)=rs(id) 'Schreiben Sie Cookies noch einmal ein. Ich weiß nicht, ob dieser Satz überflüssig ist, ich habe es nicht versucht.
Response.cookies(keren).expires=date+365 'Stellen Sie die Cookie-Ablaufzeit so ein, dass ich sie nicht wiedererkenne, wenn ein Jahr abgelaufen ist.
Ende wenn
rs.update 'Ich habe alles notiert, was beachtet werden sollte, lasst uns die Bibliothek aktualisieren.
rs.close 'Schließe das Recordset-Objekt.
set conn=nothing 'Conn freigeben, ich denke immer noch, dass die Verbindung jederzeit geöffnet und geschlossen werden sollte. Ich halte es für höchst unerwünscht, sie in SESSION zu versetzen. 4
%>
Okay, die Aufzeichnung ist fertig. Es ist ein sehr einfaches kleines Programm, aber ich denke, dass Experten clevere Tricks haben müssen, vergessen Sie nicht, Ayu beizubringen.
Sobald das Programm geschrieben ist, wie platziere ich es auf der Seite? Es ist ganz einfach: Suchen Sie einfach eine Stelle auf der Homepage und fügen Sie diese Codezeile hinzu: <img src=contpage.asp width=0 height=0>.
Der nächste Schritt besteht darin, die Rekorde zu zeigen. Es gibt viele Leute, die es besser können als Ayu, aber ich möchte trotzdem meine Hässlichkeit zur Schau stellen.
Dateiname: dispcont.asp, siehe Code:
<%
Setze Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};
Conn.Open connstr '*****Die obige Anweisung wird zum Herstellen einer Verbindung zur Bibliothek verwendet. cont.asp ist der Name der Bibliotheksdatei.
page3=request(pag)
if page3= then page3=session(contpag) 'Anzahl der Seiten, aktuelle Seite
Wenn Seite3=, dann Seite3=1
pa=Anfrage(pa)
if pa= then pa=session(contpa) 'Anzahl pro Seite anzeigen
if pa= then pa=15 'Standardmäßig werden auf jeder Seite 15 Elemente angezeigt, die beliebig geändert werden können.
session(contpag)=page3
session(contpa)=pa
page=pa 'Anzahl pro Seite anzeigen******************Das obige Programm wird zur Implementierung der Paging-Funktion verwendet
SQL=SELECT * FROM Tab-Reihenfolge nach -dat,-id
dimrs
Setze rs=Server.CreateObject(ADODB.RecordSet)
rs.Open sql,conn,1,1
csi=0
cs1=0
cs100=0
csdat1=0
tun, während nicht rs.eof
csi=csi+rs(cs)
wenn rs(cs)=1, dann cs1=cs1+1
Wenn rs(cs)>=100, dann cs100+1
if datevalue(rs(dat))=date then
csdat1=csdat1+1
Ende wenn
rs.movenext
Schleife
ZS=RS.RECORDCOUNT
'************************************************** * ***8Das folgende Programm wird für die Seitenanzeige verwendet
%>
<Kopf>
<title>Ausgezeichnete Computerstatistik</title>
</head>
<body style=font-size: 9pt bgcolor=#D8EDF8>
Es gibt insgesamt <%Response.Write zs%>-Datensätze und die aktuelle Seite ist <%Response.Write page3%>. Auf jeder Seite wird Folgendes angezeigt: [<a href=dispcont.asp?pag=<%=page3%> &pa=15>15 ] Elemente, [<a href=dispcont.asp?pag=<%=page3%>&pa=20>20] Elemente, [<a href=dispcont.asp?pag=<%=page3%>&pa=30>30] Elemente, [<a href=dispcont.asp?pag=<%=page3%>&pa=40>40] Elemente
[<a href=dispcont.asp>Aktualisieren]
<div align=left>
<table border=0 cellpadding=0 style=font-size: 9pt>
<tr><td>Seitenzahl</td><%page2=1
für i=1 bis zs Schrittseiten
Wenn Seite3=cstr(Seite2), dann
%><td >[<%Response.Write page2%>]</td>
<% sonst %>
<td ><a href=dispcont.asp?pag=<%Response.Write page2%>>[<%Response.Write page2%>]</td>
<% end if
Seite2=Seite2+1
nächste
sn=pages*(page3-1) 'Aktuelle Datensatznummer=angezeigte Anzahl pro Seite*Anzahl der Seiten – angezeigte Anzahl pro Seite
wenn sn>zs dann sn=0
rs.move sn,1
'***********************************Der obige Absatz wird für das Paging verwendet
%> </tr></table>
</div> <table style=font-size: 9pt width=100% bordercolorlight=#000000 border=1 bordercolordark=#FFFFFF bgcolor=#A4D1E8 Cellspacing=0 Cellpadding=3>
<tr><td>Anzahl</td><td>Zuletzt besuchte Homepage</td><td>Zuletzt besuchte IP</td><td>Anzahl der Homepages</td><td>Datum des ersten Besuchs</td > </tr><%
für i=1 zu Seiten
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
Wenn rs.eof, dann beenden Sie für
nächste
rs.close
%>
<tr><td>Gesamt<%=zs%></td><td>Die Anzahl der Besuche beträgt mehr als 100 Mal<%=cs100%> </td><td>Die Anzahl der Besuche beträgt 1:< % =cs1%></td><td>Gesamtzahl der Besuche<%=csi%></td><td>Besuche heute: <%=csdat1%></td></tr>
</table>
'****************************** Das Obige ist die vollständige paginierte Anzeige und kann nach dem Kopieren verwendet werden. Der Fall, dass kein einziger Datensatz vorhanden ist, wird nicht berücksichtigt.