มีสองวิธีในการใช้ฟังก์ชันนี้:
1. แอปพลิเคชัน
ใช้ออบเจ็กต์แอปพลิเคชัน: หากคุณกำลังสร้างชุมชนขนาดใหญ่ คุณอาจต้องสร้างแอปพลิเคชันสำหรับ ID การเข้าสู่ระบบแต่ละรายการ แม้ว่าการออกแบบโปรแกรมจะง่ายกว่า แต่ก็มีผู้ใช้ที่เข้าสู่ระบบมากเกินไปและจะใช้ทรัพยากรเซิร์ฟเวอร์ ไม่แนะนำที่นี่เนื่องจากออบเจ็กต์ appliaction มันง่ายที่จะสร้างเมื่อผู้ใช้เข้าสู่ระบบ แต่การจะปล่อยมันอย่างสมบูรณ์เมื่อผู้ใช้ออกจากระบบ ฉันยังไม่เคยเห็นวิธีที่ดีกว่านี้เลย ~
-
.....รับชื่อผู้ใช้ ชื่อผู้ใช้.....
ifApplication(ชื่อผู้ใช้)<>แล้ว
response.writeผู้ใช้เข้าสู่ระบบแล้ว
การตอบสนองสิ้นสุด
สิ้นสุด
Application(username)=username'' เก็บชื่อผู้ใช้ของผู้ใช้
-
เพิ่มเหตุการณ์ sessiononend ให้กับไฟล์โกลบอล และ Application(isuserlogin)=false เมื่อออฟไลน์
นอกจากนี้ จำเป็นต้องตรวจสอบว่าเธรดค้างอยู่หรือไม่ มีวิธีการพิเศษ ซึ่งเป็นรายการบางอย่างในออบเจ็กต์เซิร์ฟเวอร์
(อ้างอิง: http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=815)
2. ฐานข้อมูล+asp
อาจจะซับซ้อนกว่าการทำแต่เหมาะกับระบบที่มีผู้ใช้งานล็อกอินจำนวนมาก
ขั้นแรกให้สร้างฐานข้อมูลสำหรับผู้ใช้ - ใช้การเข้าถึงเพื่อสร้าง onlyTOL8.mdb ใหม่
ตารางข้อมูล 1: ผู้ใช้จัดเก็บข้อมูลการลงทะเบียนผู้ใช้
ตารางข้อมูลต่อไปนี้ได้รับการตั้งค่า: uID (หมายเลขอัตโนมัติ) ชื่อผู้ใช้ (ประเภทอักขระ) userPass (ประเภทอักขระ)
ตารางข้อมูล 2: onlyLogin จัดเก็บข้อมูลการเข้าสู่ระบบชั่วคราวของผู้ใช้
ตารางข้อมูลต่อไปนี้ได้รับการตั้งค่า: OLname (ประเภทตัวอักษร) OLtime (ประเภทวันที่) OLip (ประเภทตัวอักษร)
หลังจากสร้างฐานข้อมูลแล้ว ให้เพิ่มข้อมูลลงในตารางผู้ใช้ด้วยตนเอง เพิ่ม TOL8 ลงในตารางชื่อผู้ใช้ และเพิ่ม 111 ลงในตาราง userPass
จากนั้น สร้างอินเทอร์เฟซการเข้าสู่ระบบของผู้ใช้ คัดลอกโค้ดต่อไปนี้และบันทึกลงในไฟล์ onlyLogin.asp
<html>
<หัว>
<meta http-equiv=เนื้อหาประเภทเนื้อหา=ข้อความ/html;
<title>ห้ามเข้าสู่ระบบบัญชีเดียวกันจากภูมิภาคต่างๆ ในเวลาเดียวกัน</title>
</หัว>
<ร่างกาย>
<ชื่อฟอร์ม=form1วิธีการ=ลงรายการบัญชีการกระทำ=loginPost.asp>
ชื่อผู้ใช้: <input name=userName type=text id=userName size=15 maxlength=5>
รหัสผ่าน: <ชื่ออินพุต=ประเภท userPass=รหัสผ่าน id=ขนาด userPass=15 ความยาวสูงสุด=15>
<ประเภทอินพุต=ชื่อส่ง=ค่าส่ง=เข้าสู่ระบบ>
</แบบฟอร์ม>
</ร่างกาย>
</html>
หลังจากเสร็จสิ้น ให้สร้างไฟล์ loginCONN.asp ใหม่ คัดลอกโค้ดต่อไปนี้และบันทึกเพื่อเชื่อมต่อกับฐานข้อมูล
-
หรี่ CONN_TOL8
ดิมคอนน์_T
ดิ่ม มมดด
mmdd=เฉพาะTOL8.mdb
ตั้งค่า CONN_TOL8 = Server.CreateObject (ADODB.Connection)
Conn_T=ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล= & Server.MapPath(&mmdd&)
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
CONN_TOL8.เปิด Conn_T %>
ถัดไป สร้างไฟล์ loginPost.asp ที่มีอยู่ในไดเร็กทอรีนี้ด้วย นี่คือคีย์ ดูโค้ดต่อไปนี้อย่างละเอียด:
<!--#include file=loginCONN.asp -->
-
''ลบผู้ใช้ที่ใช้งานภายในเวลา maxTime, maxTime ถูกกำหนดไว้ในไฟล์ loginCONN.asp
Conn_TOL8.Execute(ลบจาก onlyLogin โดยที่ DATEDIFF(''s'',OLtime, now()) > & maxTime & )
''============================================== == ==============
หรี่ rs, ts, txt, sql, ชื่อผู้ใช้, userPass
ถ้า Request.Form(Submit)=Login แล้ว
userName=Request.Form(userName)'' รับแบบฟอร์มชื่อเข้าสู่ระบบของผู้ใช้
userPass=Request.Form(userPass)'' รับแบบฟอร์มรหัสผ่านเข้าสู่ระบบของผู้ใช้
''เนื่องจากเราไม่ได้พูดถึงปัญหาด้านความปลอดภัยที่นี่ รหัสผ่านของผู้ใช้จึงไม่ได้เข้ารหัส
ตั้ง rs = Server.CreateObject (ADODB.RECORDSET)
sql=SELECT * จากผู้ใช้ โดยที่ userName = '' & ชื่อผู้ใช้ & '' และ userPass = '' & userPass & ''
rs.เปิด sql, CONN_TOL8,1,1
ถ้าไม่ใช่ rs.eof แล้ว
โทร isOK(ชื่อผู้ใช้) '' หากชื่อผู้ใช้และรหัสผ่านถูกต้อง isOK จะถูกปรับแต่งในโปรแกรมต่อไปนี้
อื่น
Response.Write(<a href=javascript:history.go(-1)>ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง</a>)
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
rs.ปิด
ตั้งค่า rs=ไม่มีอะไร
สิ้นสุดถ้า
ย่อย isOK (ชื่อผู้ใช้)
Dim Olip '' IP บันทึกโดยชื่อผู้ใช้เข้าสู่ระบบปัจจุบันในฐานข้อมูล
Dim Oltime '' ครั้งล่าสุดที่หน้าเว็บถูกรีเฟรชเมื่อมีการบันทึกชื่อผู้ใช้ล็อกอินปัจจุบันในฐานข้อมูลเป็นข้อมูลสำคัญสำหรับการคำนวณว่าผู้ใช้ออนไลน์อยู่หรือไม่
Dim OLip1 '' บันทึก IP การเข้าสู่ระบบของผู้ใช้ปัจจุบัน ใช้เพื่อแยกแยะว่าเป็นผู้ใช้คนเดียวกันหรือไม่
OLip1=Request.ServerVariables(REMOTE_ADDR)''รับ IP ของผู้ใช้ที่ส่งข้อมูลการเข้าสู่ระบบ
ตั้งค่า ts=Conn_TOL8.execute (เลือก * จากเท่านั้นเข้าสู่ระบบ WHERE OLname=''& ชื่อผู้ใช้ & '')
หากไม่ใช่ ts.eof ให้ '' ค้นหาฐานข้อมูลเพื่อดูว่ามีข้อมูลการเข้าสู่ระบบสำหรับผู้ใช้รายนี้หรือไม่
OLtime=ts(OLtime)
OLip=ts(OLip)
ถ้า OLip1<>OLip และ DateDiff(s,OLtime,now()) < maxTime แล้ว
'' ประโยคก่อนหน้านี้กำหนดว่า IP ผู้ใช้เข้าสู่ระบบที่ส่งไม่ใช่ IP ผู้ใช้ที่บันทึกไว้ล่าสุดในฐานข้อมูลหรือไม่
''หากความแตกต่างระหว่างเวลากิจกรรมล่าสุดของผู้ใช้และเวลาปัจจุบันไม่เกินจำนวนวินาทีที่ระบุ จะได้รับการยืนยันว่าผู้ใช้กำลังออนไลน์อยู่
Response.Write <a href=javascript:history.go(-1)>ผู้ใช้รายนี้ออนไลน์อยู่ คุณไม่สามารถเข้าสู่ระบบบัญชีนี้จากที่อื่นได้! </a>
การตอบสนองสิ้นสุด()
อื่น
'' มิฉะนั้น จะถือว่าการเข้าสู่ระบบสำเร็จและจะมีการจ่ายมูลค่าให้กับเซสชัน
เซสชั่น(lgName)=ชื่อผู้ใช้
เซสชั่น(lgPass)=userPass
Response.Redirect เข้าสู่ระบบ OK.asp
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
อื่น
''หากฐานข้อมูลไม่มีบันทึกผู้ใช้เข้าสู่ระบบ ให้ดำเนินการคำสั่งต่อไปนี้
ดิม ลส
ตั้งค่า ls=Server.CreateObject(ADODB.RECORDSET)
ls.OpenSelect * จาก onlyLogin,CONN_TOL8,2,2
ls.เพิ่มใหม่
ls(OLname)=ชื่อผู้ใช้
ls(OLip)=OLip1
ls(OLtime)=ตอนนี้()
ls.UPDATE
ล.ปิด
ตั้ง ls=ไม่มีอะไร
''ตรวจสอบการเข้าสู่ระบบที่สำเร็จและชำระค่าเซสชัน
เซสชั่น(lgName)=ชื่อผู้ใช้
เซสชั่น(lgPass)=userPass
Response.Redirect เข้าสู่ระบบ OK.asp
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
สิ้นสุดย่อย %>
หลังจากเข้าสู่ระบบสำเร็จ หน้าจะข้ามไปที่ LoginOK.asp
<ประเภทสไตล์=ข้อความ/css>
-
เนื้อความ {สีพื้นหลัง: #FF9900;}
-
</สไตล์>
<% ถ้าเซสชัน (lgName)<> แล้วก็ %>
คุณเข้าสู่ระบบสำเร็จแล้ว! - - ต่อไปนี้เป็น iframe ที่แอบเข้าไปในหน้าเว็บเพื่อรีเฟรชหน้าเว็บตามเวลาที่กำหนดและรายงานไปยังเซิร์ฟเวอร์ว่าคุณออนไลน์อยู่หรือไม่
เพื่ออำนวยความสะดวกในการแยกแยะ เราใช้สีขาวเป็นสีพื้นหลังสำหรับหน้าเว็บเฟรม
<เส้นขอบ iframe=0 ชื่อ=new_date ความกว้างของขอบ=0 เฟรมระยะห่าง=0 ความสูงขอบ=0 src=loginFrame.asp
frameborder=0 noResize width=100 scrolling=no height=30 vspale=0></iframe>
<% อื่น ๆ %>
คุณไม่ได้เข้าสู่ระบบ
<% สิ้นสุดถ้า %>
สิ่งต่อไปที่ต้องทำคือ loginFrame.asp
<!--#include file=loginCONN.ASP -->
<% CONN_TOL8.Execute(อัปเดต onlyLogin Set OLtime=''& NOW() & '' โดยที่ OLname = '' & Session(lgName) & '') %>
<html><head><meta http-equiv=รีเฟรชเนื้อหา=<%=(maxTime-5)%>; url=></head></html>
ณ จุดนี้ โปรแกรมเสร็จสมบูรณ์แล้ว สิ่งสำคัญของโปรแกรมนี้คือการตรวจสอบว่าผู้ใช้ออนไลน์อยู่หรือไม่