訪問者を番号付けし、訪問数、IP、時間を記録できる統計作成の例。必要な友人が参照できます。
私もウェブサイトを作り、もちろん他の人たちと同じようにカウンターも付けました。それはとても嬉しかったのですが、いったい誰が私のウェブサイトを見たのでしょう?友達ですか、それとも古い友達ですか?何回来たか分かりませんが、やはり全てに番号を付けたいと思い、無料の統計を申請しましたが、N 回連続で番号を変更しても満足できませんでした。残念ながら、それしか方法がないようです。十分な食料と衣服を用意することは、自分で行うことです。専門家がアドバイスを求めずに笑ってくれることを願っています。
例としてACCESSライブラリを取り上げました。実際、SQL SERVER ライブラリを使用するには、リンク ライブラリのステートメントを変更するだけです。
ライブラリの構造は次のとおりです
ライブラリファイル名:CONT.ASP 元々はCONT.MDBでしたが、ビルド後にライブラリがダウンロードされないよう拡張子をASPに変更しました。
テーブル名: タブ
フィールド名 データ型の説明
ID 来訪者の番号を自動採番
IPテキストは訪問者のIPを記録するために使用されます
dat1 の日付と時刻は、訪問者が最後に訪問した時間を記録するために使用されます。
日付と時刻は、訪問者の最初の訪問時間を記録するために使用されます。
CS 番号、訪問者の訪問数を記録するために使用される整数
プログラムは非常に単純で、ファイルは 2 つだけで、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)'クッキーを読んでください。クッキーの名前は、ケレンです、ははは。 。 Ah Yu の E は文学的には下手で、ピンインの使い方しか知りません。
- ifkeren=then' はクックが空かどうかを決定します。空の場合は新しい友人である必要があり、そうでない場合は古い友人です。
- 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 を書き込みます。内容は ID と同じです。
- 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'1 年後に認識されなくなるように Cookie の有効期限を設定します。
- エンドイフ
- 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' はデフォルトで 1 ページあたり 15 項目を表示しますが、これは任意に変更できます
- セッション(contpag)=ページ3
- セッション(contpa)=pa
- 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
- 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.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>更新]
- 〈ディバライン=左〉
- 〈tableborder=0cellpadding=0style=font-size:9pt〉
- <tr><td>ページ番号</td><%page2=1
- fori=1tozsステップページ
- ifpage3=cstr(page2)then
- %><td>[<%Response.Writepage2%>]</td>
- <%それ以外%>
- <td><ahref=dispcont.asp?pag=<%Response.Writepage2%>>[<%Response.Writepage2%>]</td>
- <%endif
- ページ 2=ページ 2+1
- 次
- sn=pages*(page3-1)'現在のレコード番号=1ページあたりの表示数*ページ数-1ページあたりの表示数
- ifsn〉zsthensn=0
- rs.movesn,1
- '************************************上記の段落はページングに使用されます
- %></tr></table>
- </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
- 応答.書き込み</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
- ifrs.eofthenexitfor
- 次
- rs.close
- %〉
- 〈tr〉〈td〉合計〈%=zs%〉〈/td〉〈td〉100回以上訪問した人もいる〈%=cs100%〉〈/td〉〈td〉1回訪問した人もいる: <%=cs1%></td><td>総訪問数 <%=csi%></td><td>今日の訪問数: <%=csdat1%></td></tr>
- </テーブル>
上記は、コピーして使用できる完全なページング表示です(注:記録がない状況は考慮されていません)。よく言われるように、自分で実行するだけで衣食足りるはずですので、急いでください。試してみてください!