สร้างสถิติเว็บไซต์อย่างง่าย
แนวคิดการออกแบบ: ทริกเกอร์เซิร์ฟเวอร์ SessionID เพื่อบันทึกสถานะการเข้าสู่ระบบของผู้ใช้เมื่อใช้คำขอหน้าเว็บผู้ใช้ ผู้ใช้คือ 20 นาทีผู้ใช้เมื่อไม่มีคำขอเว็บเพจลบผู้ใช้นี้
1. ตารางข้อมูล: เราเพิ่มสองตารางลงในฐานข้อมูล
ตารางบรรทัด: SessionId อักขระประเภท 20 -bit เพื่อบันทึกเครื่องหมายที่ไม่ซ้ำกันของคำขอหน้าเว็บลูกค้า
ประเภทเวลา UserDate วันที่เวลาสำหรับการบันทึกเวลาของคำขอหน้าเว็บล่าสุดของลูกค้า
ID Automatic Number ประเภท
นอกจากนี้คุณยังสามารถบันทึกข้อมูลอื่น ๆ ในตารางนี้เช่นบัญชี IP และข้อมูลอื่น ๆ
Count Table: UserDate Date Type Type ใช้เพื่อบันทึกวันที่ของวัน
Count Digital Type ใช้เพื่อบันทึกปริมาณการคลิกเว็บไซต์
วันนี้ประเภทดิจิตอลใช้เพื่อบันทึกปริมาณการเข้าถึงของวันนี้
Max Digital Type ใช้เพื่อบันทึกการเข้าชมสูงสุดของวัน
ในตารางนี้เนื่องจากมีเพียงบันทึกเดียวจึงไม่จำเป็นต้องใช้ฟิลด์ ID แต่การรักษาฟิลด์ ID เป็นนิสัยที่ดี
2. ใช้ con.asp เพื่อประมวลผลตารางบรรทัด
(1) เชื่อมต่อฐานข้อมูล
หรี่
หรี่
DIM DB
db = "date/date.mdb"
ตั้งค่า conn = server.createObject ("adodb.connection"))
connstr = "ผู้ให้บริการ = microsoft.jet.oledb.4.0; แหล่งข้อมูล =" & server.mappath ("" & db & "")
conn.open connstr
(2) บันทึกการหมดเวลาที่ชัดเจน
conn.execute ("ลบจากบรรทัดที่ datediff (" "s", userdate, ตอนนี้ ())> = 1200 ")
(3) บันทึกข้อมูลลูกค้าไปยังตารางสายและดำเนินการประมวลผลทางสถิติของไซต์
Dim SQL, SQL1, RS, RS1
ตั้งค่า rs = server.createObject ("adoDb.oldset"))
sql = "เลือก * จากบรรทัดที่ [sessionid] =" "" & session.sessionid & "" "กำหนดว่าคำขอเว็บเพจเริ่มต้นของลูกค้า
Rs.oopen SQL, Conn, 1,3
หากไม่ใช่ RS.EOF แล้ว "หากเป็นคำขอเว็บเพจดั้งเดิมให้บันทึกข้อมูลลูกค้ามิฉะนั้นจะเปลี่ยนเวลาคำขอเท่านั้น
rs ("userdate") = ตอนนี้ ()
อื่น
ตั้งค่า rs1 = server.createObject ("adodb.oldset") "
sql1 = "เลือก * จาก [count]"
Rs1.open SQL1, Conn, 1,3
หาก RS.EOF แล้ว "หากไม่มีบันทึกในตารางให้เริ่มต้นตารางนี้
Rs.Addnew
rs ("count") = 1
RS ("สูงสุด") = 1
RS ("วันนี้") = 1
rs ("userdate") = วันที่ ()
อื่น
rs1 ("count") = rs1 ("count") 1 "จำนวนคลิกเว็บไซต์นับจำนวน
ถ้า rs1 ("userdate") = date () จากนั้น "ถ้าวันที่ระบบเหมือนกับวันที่สุดท้ายของบันทึกข้อมูลให้เพิ่ม 1 เข้าเยี่ยมชม 1
rs1 ("วันนี้") = rs1 ("วันนี้") 1
หากแตกต่างกัน 'ตั้งค่าระดับการเข้าถึงรายวัน 1 และเปลี่ยนวันที่บันทึกข้อมูลเป็นวันที่เซิร์ฟเวอร์
rs1 ("วันนี้") = 1
rs1 ("userdate") = วันที่ ()
สิ้นสุดถ้า
rs1.update
ถ้า rs1 ("max") <= rs1 ("วันนี้") จากนั้น 'หากสถิติของวันเกินการเข้าชมสูงสุดทุกวันให้อัปเดตการเข้าชมสูงสุดทุกวัน
rs1 ("max") = rs1 ("วันนี้")
สิ้นสุดถ้า
สิ้นสุดถ้า
rs1.update
rs1.close
ตั้งค่า rs1 = ไม่มีอะไร
Rs.AddNew "ต่อไปนี้เป็นข้อมูลของผู้ใช้
RS ("SessionId") = session.sessionId "เพื่อเขียน SessionID ลงในตารางข้อมูล
rs ("userdate") = now () เขียนวันที่ระบบไปยังตารางข้อมูล
สิ้นสุดถ้า
Rs.update
Rs.close
ตั้งค่า rs = ไม่มีอะไร
การประมวลผลข้างต้นพร้อมสำหรับสถิติ
<!-#รวม file = "conn.asp"->
<% Dim Count, วันนี้, สูงสุด, บรรทัด
ตั้งค่า rs = server.createObject ("adoDb.oldset"))
sql = "เลือก * จาก [count]" "
Rs.oopen SQL, Conn, 1,1
วันนี้ = RS ("วันนี้")
count = rs ("count")
max = rs ("สูงสุด")
Rs.close
ตั้งค่า rs = ไม่มีอะไร
ตั้งค่า rs = server.createObject ("adoDb.oldset"))
sql = "เลือกนับ (*) จากบรรทัด"
Rs.oopen SQL, Conn, 1,1
line = rs (0)
Rs.close
ตั้งค่า rs = ไม่มีอะไร
-
เราได้จัดทำสถิติเว็บไซต์ด้านบนและวางไว้ในจำนวนตัวแปรวันนี้สูงสุด, บรรทัด ไม่ดังนั้นเราต้องใช้ประโยคต่อไปนี้เพื่อส่งออกเนื้อหาทางสถิติ:
document.write ("การเยี่ยมชมเว็บไซต์: <%= นับ%> คน <br>")
document.write ("วันนี้: <%= วันนี้%> ผู้คนเข้าเยี่ยมชมเว็บไซต์นี้ <br>")
document.write ("การเยี่ยมชมทุกวันสูงสุดของเว็บไซต์นี้: <%= สูงสุด%> ผู้คน <br>")
document.write ("ปัจจุบันออนไลน์: <%= line%> people")
เราใช้ <script src = "line.asp"> </script> เพื่ออ้างไฟล์นี้