แนะนำ: คลาส ASP คลาส A TAG Engine คลาส tagEngine.class คลาส ASP ที่ใช้ในการใช้ฟังก์ชั่นแท็กคุณสามารถเข้าใจฟังก์ชั่นเฉพาะหากคุณสามารถเข้าใจได้ บันทึกการปรับเปลี่ยน: 1, เพิ่มฟังก์ชั่นส่วนขยาย, 2006-12-3 % '****************************************************************************************************************** www.
ผู้เขียนมีความพิถีพิถันมากจนเขาห่อหุ้มสิ่งเหล่านี้ทั้งหมดลงในชั้นเรียน มันจบลงเล็กน้อย สิ่งเหล่านี้สามารถห่อหุ้มเป็นกระบวนการหรือฟังก์ชั่น ย่อยและฟังก์ชั่นก็ถูกห่อหุ้มด้วยและไม่จำเป็นต้องเป็นคลาส ไลบรารีไฟล์ของคุณไม่จำเป็นต้องเป็นคลาสทั้งหมดย่อยและฟังก์ชั่นบางอย่างเป็นสิ่งจำเป็น
ฟังก์ชั่นที่นำมาใช้รวมถึง
1. showinfo (e_title, c_url, e_num, e_des, e_time, opera, ip, reurl): แสดงข้อความแสดงข้อผิดพลาด
2. getip (): รับ ip ไคลเอนต์
3. pheckpost (): ตรวจสอบว่าเป็นการส่งนอกสถานที่
4. getReferer (): บันทึกต้นกำเนิด
5. getCururl (): รับเส้นทางหน้าปัจจุบัน
6, Isrefresh (S1, S2, Maxtimes): Anti-refresh
รหัสสมบูรณ์:
-
-
'ชื่อ: EventProvider (คลาสเหตุการณ์)
'วันที่: 2006/11/24
'ผู้แต่ง: Leng Yue, Xilou
'เว็บไซต์: www.cuoxin.com
'คำอธิบาย: ไม่มี
'ลิขสิทธิ์: โปรดดูแหล่งที่มาสำหรับการพิมพ์ซ้ำผู้เขียน
-
'แก้ไขล่าสุด: 2006/11/24
'จำนวนการดัดแปลง: 0
'คำแนะนำในการแก้ไข: ไม่มี
'เวอร์ชันปัจจุบัน: v1.0.0
-
คลาส EventProvider
ชื่อตาราง logdbname 'ส่วนตัว
'www.cuoxin.com ออกแบบบ้าน
'การเริ่มต้น
คลาสย่อย class_initialize ()
logdBname = loginfo
สิ้นสุดย่อย
-
คลาสย่อย class_terminate ()
สิ้นสุดย่อย
'ชื่อของเหตุการณ์ที่กำหนดไว้ล่วงหน้าหรือประเภท
ฟังก์ชั่นสาธารณะ EventTitles (typepenum)
Dim Arrtype (9)
artype (0) = เหตุการณ์ที่ไม่รู้จัก
artype (1) = การเข้าสู่ระบบผู้ใช้ที่ผิดกฎหมาย
artype (2) = URL ผ่านพารามิเตอร์ที่ผิดกฎหมาย
artype (3) = เข้าสู่ระบบและส่งผ่านในอักขระที่ผิดกฎหมาย
artype (4) = เข้าสู่ระบบบ่อยครั้งจำนวนการเข้าสู่ระบบเกินเวลาที่กำหนด
arrtype (5) = การสืบค้นอักขระที่ผิดกฎหมายที่เข้ามา
arrtype (6) = การสืบค้นบ่อยครั้งจำนวนการสืบค้นเวลาเกินเวลาที่กำหนด
artype (7) = หน้าจะรีเฟรชบ่อยครั้งและจำนวนการรีเฟรชเกินเวลาที่กำหนด
artype (8) = ข้อมูลการส่งนอกสถานที่
artype (9) = การเข้าสู่ระบบแบ็กเอนด์
ถ้าไม่ใช่ isnumeric (typepenum) ดังนั้น EventTitles = เหตุการณ์ที่ไม่รู้จัก: ฟังก์ชันออก
ถ้า clng (abs (typenum))> ubound (artype) แล้ว
EventTitles = เหตุการณ์ที่ไม่รู้จัก: ฟังก์ชั่นออก
สิ้นสุดถ้า
EventTitles = artype (typepenum)
ฟังก์ชันสิ้นสุด
'ข้อผิดพลาดการแสดงผลอาร์เรย์สั่งซื้อล่วงหน้า
Sub ShowarrayInfo สาธารณะ (InfoItems, Infovalues)
DIM STR
str = <div style = 'border: 2px solid #4e4e9c; font-family: Arial; สี: #800040; ความกว้าง: 50%; Font-Size: 9pt'>
str = str & <ul style = 'margin: 20px;'> <b> ข้อมูลเหตุการณ์ ASP: </b> & vbcrlf
ถ้า isarray (infoItems) และ isarray (infovalues) แล้ว
สำหรับ i = lbound (infoItems) ถึง Ubound (InfoItems)
str = str & <li> <b style = 'color:#4e4e9c'> & infoItems (i) &: </b> & infovalues (i) & vbcrlf
ต่อไป
อื่น
str = str & <li> <b> & infoItems & </b>: & infovalues & vbcrlf
สิ้นสุดถ้า
str = str & </ul> </div> & vbcrlf
Response.Write Str
สิ้นสุดย่อย
'แสดงข้อผิดพลาด
Public Sub Showinfo (e_title, c_url, e_num, e_des, e_time, opera, ip, reurl)
Dim InfoItems, Infovalues
infoItems = array (ชื่อเหตุการณ์, URL กิจกรรม, EventNumber, EventDescription, _
Eventtime, Operator, IP, Referer url_
-
Infovalues = Array (E_TITLE, C_URL, E_NUM, E_DES, E_TIME, Opera, IP, Reurl)
showarrayinfo infoitems, infovalues
สิ้นสุดย่อย
'แสดงข้อมูลเกี่ยวกับไฟล์ต้นฉบับ
suboriinfo ย่อยสาธารณะ (oriclass, orifunction, oripage)
Dim InfoItems, Infovalues
infoItems = array (คลาสดั้งเดิม, ฟังก์ชั่นดั้งเดิม, หน้าต้นฉบับ)
Infovalues = Array (Oriclass, Orifunction, Oripage)
showarrayinfo infoitems, infovalues
สิ้นสุดย่อย
'รับ IP
ฟังก์ชั่นสาธารณะ getip ()
Dim IP
'หากไคลเอน
ip = request.serverVariables (http_x_forwarded_for)
ถ้า IP = หรือ ISNULL (IP) หรือ isEmpty (IP) แล้ว
'หากไคลเอนต์ไม่ใช้พร็อกซีควรใช้วิธีการ request
ip = request.serverVariables (remote_addr)
สิ้นสุดถ้า
getIP = IP
ฟังก์ชันสิ้นสุด
'การตรวจสอบการส่งนอกสถานที่
Public Proction PrectPost ()
DIM Server_v1, Server_v2
pheckPost = FALSE
server_v1 = cstr (request.serverVariables (http_referer))
server_v2 = cstr (request.serverVariables (server_name))
ถ้า mid (server_v1,8, len (server_v2)) = server_v2 จากนั้น checkPost = true
ฟังก์ชันสิ้นสุด
'ไปทาง
ฟังก์ชั่นสาธารณะ getReferer ()
getReferer = request.ServerVariables (http_referer)
ฟังก์ชันสิ้นสุด
'รับ URL ปัจจุบันของเบราว์เซอร์
ฟังก์ชั่นสาธารณะ getCururl ()
หาก request.ServerVariables (https) = on
getCurrentUrl = https: //
อื่น
getCurrentUrl = http: //
สิ้นสุดถ้า
getCururl = getCururl & request.ServerVariables (server_name)
if (request.serverVariables (server_port) <> 80) จากนั้น getCururl = getCururl &: & request.ServerVariables (server_port)
getCururl = getCururl & Request.ServerVariables (URL)
if (request.querystring <>) จากนั้น getCururl = getCururl &? & request.querystring
ฟังก์ชันสิ้นสุด
'รับแหล่งที่มาหรือรับ URL ปัจจุบันของเบราว์เซอร์ครอบคลุมสองครั้งแรก
ฟังก์ชั่นสาธารณะ geturl (t)
ถ้า t = 1 แล้ว
getUrl = getCururl ()
อื่น
getUrl = getReferer ()
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'Anti-refresh
'S1: อนุญาตให้เข้าถึงได้หลังจาก S1 วินาทีนานกว่าวินาที
'S2: หากเวลาปัจจุบันและเวลาการเข้าถึงครั้งสุดท้ายแตกต่างจาก S2 วินาทีมันจะได้รับการพิจารณาให้รีเฟรชบ่อยครั้ง
'Maxtimes: หากจำนวนการรีเฟรชบ่อยครั้งเท่ากับหรือมากกว่า maxtimes ให้บันทึก
'ถ้าสดชื่นบ่อยครั้ง isRefresh = true มิฉะนั้นมันเป็นเท็จ
ฟังก์ชั่นสาธารณะ iSrefresh (S1, S2, Maxtimes)
Dim Cachename
cachename = eventProvider_2006
ถ้า iSdate (เซสชัน (cachename & isrefreshtime)) แล้วจะได้รับอนุญาตให้ 'Acccess หลังจาก S1 วินาที
ถ้า datediff (s, เซสชัน (cachename & isrefreshtime), ตอนนี้ ())> s1 แล้ว
เซสชัน (Cachename & Isrefreshtime) = Now ()
เซสชัน (Cachename & Isrefresh) = FALSE
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้าเซสชัน (cachename & iSrefresh) = true แล้ว
isRefresh = true
อื่น
isRefresh = false
สิ้นสุดถ้า
ถ้า isdate (เซสชัน (Cachename & Refreshstart)) แล้ว
ถ้า datediff (s, เซสชัน (cachename & refreshstart), ตอนนี้ ()) <s2 แล้ว '// ถ้าเวลาปัจจุบันและเวลาการเข้าถึงครั้งสุดท้ายแตกต่างจากวินาที S2 มันจะได้รับการพิจารณาให้สดชื่นบ่อยครั้ง
เซสชัน (Cachename & Refresht) = เซสชัน (Cachename & Refresht) +1 '// สถิติจำนวนการรีเฟรชบ่อยครั้ง
ถ้าเซสชัน (cachename & Refresht)> = maxtimes จากนั้น '// ถ้าเวลารีเฟรชความถี่เท่ากับหรือมากกว่า maxtimes ให้บันทึก
เซสชัน (Cachename & Isrefresh) = true
เซสชัน (Cachename & Isrefreshtime) = Now ()
สิ้นสุดถ้า
อื่น
เซสชัน (Cachename & Refresht) = 0 '// ถ้าไม่เปลี่ยนจำนวนระเบียนบ่อยครั้งเป็น 0
สิ้นสุดถ้า
สิ้นสุดถ้า
เซสชัน (cachename & RefreshStart) = Now () '// จองเวลาสำหรับการเยี่ยมชมครั้งนี้จนถึงครั้งต่อไป
ฟังก์ชันสิ้นสุด
'เขียนไปยังบันทึกฐานข้อมูล
Public Sub WritetoDB (E_TITLE, C_URL, E_NUM, E_DES, E_TIME, Opera, IP, Reurl, Conn)
สลัว SQL
sql = แทรกลงใน & logdbname & (etitle, eurl, enum, edes, etime, ผู้ประกอบการ, IP, roptererurl) ค่า (
sql = sql & '& e_title &', '& c_url &', '& e_num &', '& e_des &', '& e_time &', '& opera &', '& ip &', '&' & '
conn.execute (SQL)
สิ้นสุดย่อย
ชั้นเรียนจบ
-
แบ่งปัน: ASP+AJAX ไม่ได้รีเฟรชเพื่อเพิ่มเพื่อน เนื่องจากความสัมพันธ์ในการทำงานหนึ่งในฟังก์ชั่นคือการเพิ่มอีกฝ่ายเป็นเพื่อน ดังที่แสดงในรูป: วิธีที่ใช้คือ AJAX และรหัสที่เหมาะสมนั้นมีราคาไม่แพง: HREF = JavaScript: Void (0); onclick = add_username (' %= rs (ชื่อผู้ใช้) %'); เพิ่มเป็นเพื่อน/A การตรวจสอบ JS ที่ใช้: ภาษาสคริปต์ = JavaScript SRC = AJAX