แนะนำ: หลายวิธีในการโทรขั้นตอนที่เก็บไว้ด้วยพารามิเตอร์ หลายวิธีการโทร ASP ขั้นตอนที่เก็บไว้ด้วยพารามิเตอร์ 1 นี่เป็นวิธีที่ง่ายที่สุดพารามิเตอร์อินพุตสองพารามิเตอร์ไม่มีค่าส่งคืน: Set Connection = Server.CreateObject (ADODB.CONNECTION) การเชื่อมต่อ OPEN SOMEDSN การเชื่อมต่อ
มีสองวิธีในการใช้ฟังก์ชันนี้:
1. แอปพลิเคชัน
ใช้วัตถุแอปพลิเคชัน: หากคุณกำลังทำชุมชนขนาดใหญ่คุณอาจต้องสร้างแอปพลิเคชันสำหรับรหัสเข้าสู่ระบบแต่ละรายการ แม้ว่าการออกแบบโปรแกรมจะง่ายขึ้นผู้ใช้เข้าสู่ระบบมีมากเกินไปและใช้ทรัพยากรเซิร์ฟเวอร์ ไม่แนะนำที่นี่เพราะวัตถุแอปพลิเคชันนั้นง่ายต่อการสร้างเมื่อผู้ใช้เข้าสู่ระบบ แต่เพื่อให้บรรลุการตระหนักว่าผู้ใช้ออกจากระบบและยังไม่เห็นวิธีที่ดีกว่า ~
ต่อไปนี้เป็นเนื้อหาที่ยกมา: - ..... รับชื่อผู้ใช้ชื่อผู้ใช้ .... ถ้าแอปพลิเคชัน (ชื่อผู้ใช้) <> จากนั้น Response.write ผู้ใช้นี้เข้าสู่ระบบแล้ว Response.end สิ้นสุดถ้า แอปพลิเคชัน (ชื่อผู้ใช้) = ชื่อผู้ใช้ '' เก็บชื่อผู้ใช้ของผู้ใช้ - |
เพิ่มเหตุการณ์เซสชัน Oneend ลงในไฟล์ส่วนกลางแอปพลิเคชัน (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> <head> <meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312> <title> ห้ามเข้าสู่ระบบในภูมิภาคต่าง ๆ ของบัญชีเดียวกันในเวลาเดียวกัน </title> </head> <body> <form name = form1 method = post action = loginPost.asp> ชื่อผู้ใช้: <ชื่ออินพุต = ชื่อผู้ใช้ = ข้อความรหัส = ขนาดชื่อผู้ใช้ = 15 maxLength = 5> รหัสผ่าน: <ชื่ออินพุต = ประเภท UserPass = รหัสผ่าน = userPass Size = 15 MaxLength = 15> <ประเภทอินพุต = ส่งชื่อ = ส่งค่า = เข้าสู่ระบบ> </form> </body> </html> |
หลังจากเสร็จสิ้นให้สร้างไฟล์ loginconn.asp ใหม่และคัดลอกรหัสต่อไปนี้เพื่อบันทึกสำหรับการเชื่อมต่อกับฐานข้อมูล
ต่อไปนี้เป็นเนื้อหาที่ยกมา: - สลัว conn_tol8 สลัว conn_t Dim MMDD mmdd = onlytol8.mdb ตั้งค่า conn_tol8 = server.createObject (adodb.connection) conn_t = ผู้ให้บริการ = microsoft.jet.oledb.4.0; แหล่งข้อมูล = & server.mappath (& mmdd &) เมื่อเกิดข้อผิดพลาดต่อไป conn_tol8.open conn_t %> |
ต่อไปนี้เป็นไฟล์ loginpost.asp ที่มีอยู่ในไดเรกทอรีนี้ นี่คือกุญแจสำคัญ ดูรหัสต่อไปนี้อย่างระมัดระวัง:
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <!-#รวมไฟล์ = loginConn.asp-> - '' ลบผู้ใช้ที่ใช้งานภายในเวลา maxtime, maxtime ถูกกำหนดไว้ในไฟล์ loginconn.asp conn_tol8.execute (ลบจาก onlylogin ที่ datediff ('s' ', oltime, ตอนนี้ ())> & maxtime &) - Dim RS, TS, TXT, SQL, ชื่อผู้ใช้, UserPass หาก request.form (ส่ง) = เข้าสู่ระบบแล้ว ชื่อผู้ใช้ = request.form (ชื่อผู้ใช้) '' รับชื่อผู้ใช้ฟอร์ม userPass = request.form (userPass) '' รับรหัสผ่านการเข้าสู่ระบบของผู้ใช้แบบฟอร์ม '' เนื่องจากเราไม่ได้พูดถึงปัญหาด้านความปลอดภัยที่นี่รหัสผ่านของผู้ใช้จึงไม่ได้เข้ารหัส ตั้งค่า rs = server.createObject (adodb.recordset) SQL = SELECT * จากผู้ใช้ที่ชื่อผู้ใช้ = '' & USERNAME & '' และ userPass = '' & userPass & '' Rs.Open SQL, Conn_tol8,1,1 ถ้าไม่ใช่ rs.eof แล้ว Call Isok (ชื่อผู้ใช้) '' ชื่อผู้ใช้และรหัสผ่านเรียกอย่างถูกต้องสำหรับกระบวนการและ ISOK จะถูกปรับแต่งในโปรแกรมต่อไปนี้ อื่น Response.write (<a href = javascript: history.go (-1)> ชื่อผู้ใช้หรือรหัสผ่านที่ไม่รู้จัก </a>) Response.end () สิ้นสุดถ้า Rs.close ตั้งค่า rs = ไม่มีอะไร สิ้นสุดถ้า Sub Isok (ชื่อผู้ใช้) dim olip '' IP ที่บันทึกโดยชื่อผู้ใช้ล็อกอินปัจจุบันในฐานข้อมูล Dim oltime '' ครั้งสุดท้ายที่หน้าเว็บได้รับการบันทึกรีเฟรชโดยชื่อผู้ใช้ล็อกอินปัจจุบันในฐานข้อมูลเป็นข้อมูลสำคัญในการคำนวณว่าผู้ใช้ออนไลน์หรือไม่ DIM OLIP1 '' บันทึกการเข้าสู่ระบบผู้ใช้ปัจจุบันไปยัง IP ซึ่งใช้เพื่อแยกแยะว่าเป็นฉลากของผู้ใช้เดียวกันหรือไม่ olip1 = request.serverVariables (remote_addr) '' รับ IP ของผู้ใช้ที่ส่งข้อมูลเข้าสู่ระบบ ตั้งค่า ts = conn_tol8.execute (เลือก * จาก onlyLogin โดยที่ olname = '' & username & '') หากไม่ใช่ 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> Response.end () อื่น '' มิฉะนั้นจะมีการพิจารณาว่าการเข้าสู่ระบบจะสำเร็จและค่าจะถูกจ่ายให้กับเซสชัน เซสชัน (lgname) = ชื่อผู้ใช้ เซสชัน (lgpass) = userpass Response.redirect loginok.asp Response.end สิ้นสุดถ้า อื่น '' หากฐานข้อมูลไม่มีเร็กคอร์ดผู้ใช้เข้าสู่ระบบให้ดำเนินการคำสั่งต่อไปนี้ หรี่ ตั้งค่า ls = server.createObject (adodb.recordset) ls.openselect * จาก onlylogin, conn_tol8,2,2 ls.addnew ls (olname) = ชื่อผู้ใช้ LS (OLIP) = OLIP1 ls (oltime) = now () ls.update ls.close ตั้งค่า ls = ไม่มีอะไร '' ความละเอียดที่การเข้าสู่ระบบประสบความสำเร็จและจ่ายให้กับเซสชัน เซสชัน (lgname) = ชื่อผู้ใช้ เซสชัน (lgpass) = userpass Response.redirect loginok.asp Response.end สิ้นสุดถ้า สิ้นสุด sub %> |
หลังจากเข้าสู่ระบบได้สำเร็จใบไม้จะข้ามไปที่ loginok.asp
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <style type = text/css> - ร่างกาย {พื้นหลังสี: #ff9900;} - </style> < % ถ้าเซสชัน (LGNAME) <> %> คุณเข้าสู่ระบบได้สำเร็จ! - - ด้านล่างคือ iframe ที่แอบเข้าไปในหน้าเว็บเพื่อรีเฟรชหน้าเว็บในเวลาที่กำหนดเพื่อรายงานไปยังเซิร์ฟเวอร์ไม่ว่าคุณจะออนไลน์หรือไม่ เพื่ออำนวยความสะดวกความแตกต่างเราใช้สีขาวเป็นสีพื้นหลังของหน้าเว็บเฟรม <iframe border = 0 name = new_date marginWidth = 0 framespacing = 0 marginHeight = 0 src = loginframe.asp frameBorder = 0 noresize width = 100 scrolling = ไม่มีความสูง = 30 vspale = 0> </iframe> < % อื่น %> |
คุณไม่ได้เข้าสู่ระบบ
ต่อไปนี้เป็นเนื้อหาที่ยกมา: < % end ถ้า %> |
สิ่งที่ต้องทำต่อไปคือ loginframe.asp
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <!-#รวมไฟล์ = loginConn.asp-> < % conn_tol8.execute (อัปเดต onlyLogin set oltime = '' & now () & '' โดยที่ olname = '' & เซสชัน (lgname) & '') %> %> <html> <head> <meta http-equiv = refresh content = <%= (maxtime-5)%>; url => </head> </html> |
จนถึงตอนนี้โปรแกรมเสร็จสมบูรณ์และกุญแจสำคัญในโปรแกรมนี้คือการพิจารณาว่าผู้ใช้ออนไลน์หรือไม่
แบ่งปัน: การใช้งานการป้อนข้อมูลแบทช์ ASP รายการแบทช์ถูกใช้อย่างกว้างขวางในฐานข้อมูลและมีวิธีการมากมายสำหรับรายการแบทช์ ต่อไปฉันจะพูดคุยเกี่ยวกับวิธีที่ฉันประสบความสำเร็จตามแอปพลิเคชันจริงของฉัน การใช้งานหลักคือแนวคิดของการรวบรวมแบบฟอร์มซึ่งใช้ข้อมูลทั้งหมดในการรวบรวมผ่านลูป เมื่อพิจารณาว่าทุกคนสะดวกสบายฉันจึงรวมเข้ากับหน้าเดียว ด้านล่างคือรหัสเฉพาะ