موصى به: ASP Class A Tag Engine Class Tagengine.class فئة ASP المستخدمة لتنفيذ وظيفة العلامة ، يمكنك فهم الوظائف المحددة إذا كنت تستطيع فهمها. سجل التعديل: 1 ، إضافة وظيفة التمديد ، 2006-12-3 ٪ '*************************** "اسم الفصل: اسم TAGENGINE" الاسم: TAG Engine "التاريخ: 2006-11-29' المؤلف: Xilou Lengyue ': www.xilou.net | www.
المؤلف دقيق للغاية لدرجة أنه يلف كل هذه الأشياء في فصول. لقد انتهى الأمر قليلاً. يمكن تغليف هذه الأشياء كعمليات أو وظائف. يتم تغليف الفرعية والوظيفة أيضًا ، ولا يجب أن تكون فئة. مكتبة الملفات الخاصة بك ليست بالضرورة كل الفصل ، وبعضها ضروري.
وتشمل الوظائف التي تم تنفيذها
1. ShowInfo (E_Title ، C_URL ، E_NUM ، E_DES ، E_TIME ، OPERA ، IP ، REURL): رسالة خطأ العرض
2. getip (): الحصول على IP العميل
3.
4. getReferer (): سجل الأصل
5. getCururl (): احصل على مسار الصفحة الحالي
6 ، Isrefresh (S1 ، S2 ، Maxtimes): Anti-Refresh
رمز كامل:
<٪
'*********************************
'الاسم: EventProvider (فئة الأحداث)
"التاريخ: 2006/11/24
المؤلف: لينغ يوي ، Xilou
موقع الويب: www.cuoxin.com
الوصف: لا شيء
حقوق الطبع والنشر: يرجى الرجوع إلى مصدر إعادة الطباعة ، المؤلف
'*********************************
"آخر تعديل: 2006/11/24
'عدد التعديلات: 0
تعليمات التعديل: لا شيء
الإصدار الحالي: v1.0.0
'*********************************
فئة EventProvider
اسم جدول سجل logdbname الخاص
'www.cuoxin.com Design Home
التهيئة
sub sub class_initialize ()
logDbName = logInfo
نهاية الفرعية
'
sub sub class_terminate ()
نهاية الفرعية
عنوان الحدث المحدد مسبقًا ، أو نوع
وظيفة الحدث العام (TypePenum)
قاتمة Arrstepe (9)
ARRTYPE (0) = حدث غير معروف
ARRTYPE (1) = تسجيل الدخول المستخدم غير القانوني
ARRTYPE (2) = URL يمرر معلمات غير قانونية
arhpe (3) = تسجيل الدخول والمرور في شخصيات غير قانونية
ARRTYPE (4) = تسجيل الدخول بشكل متكرر ، يتجاوز عدد تسجيلات تسجيل الدخول الوقت المحدد
arhpe (5) = استعلام شخصيات غير قانونية
ARRTYPE (6) = استعلام متكرر ، يتجاوز عدد أوقات الاستعلام الوقت المحدد
ARRTYPE (7) = يتم تحديث الصفحة بشكل متكرر ، ويتجاوز عدد التحديثات الوقت المحدد
ARRTYPE (8) = بيانات التقديم خارج الموقع
ARRTYPE (9) = تسجيل الدخول الخلفي
إذا لم يكن isnumeric (typePenum) ثم EventTitles = حدث غير معروف: وظيفة الخروج
إذا كان clng (abs (typenum))> ubound (arrtype) ثم
EventTitles = حدث غير معروف: وظيفة الخروج
إنهاء إذا
eventtitles = arrtype (typepenum)
وظيفة نهاية
خطأ في عرض صفيف الطلب المسبق
showarrayinfo العامة (infoitems ، infovalues)
خافت شارع
str = <div style = 'الحدود: 2px solid #4e4e9c ؛ font-family: arial ؛ color: #800040 ؛ Width: 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> </viv> & vbcrlf
استجابة. write str
نهاية الفرعية
"عرض الخطأ
showinfo العامة (E_Title ، C_URL ، E_NUM ، E_DES ، E_TIME ، OPERA ، IP ، REURL)
Dim InfoItems ، infovalues
InfoItems = Array (عنوان الحدث ، URL الحدث ، EventNumber ، EventDescription ، _
EventTime ، المشغل ، IP ، URL url_
)
Infovalues = Array (e_title ، c_url ، e_num ، e_des ، e_time ، opera ، ip ، reurl)
ShowArrayInfo InfoItems ، Infovalues
نهاية الفرعية
عرض معلومات حول الملف الأصلي
شوائب الفرعية العامة (oriclass ، orifunction ، oripage)
Dim InfoItems ، infovalues
InfoItems = Array (الفئة الأصلية ، الوظيفة الأصلية ، الصفحة الأصلية)
infovalues = صفيف (oriclass ، orifunction ، oripage)
ShowArrayInfo InfoItems ، Infovalues
نهاية الفرعية
احصل على IP
وظيفة عامة getip ()
IP DIM
"إذا كان العميل يستخدم خادم وكيل ، فيجب عليه استخدام طريقة ServerVariables (http_x_forwarded_for)
IP = request.servervariables (http_x_forwarded_for)
إذا كان IP = أو isNull (IP) أو isEmpty (IP) ثم
"إذا لم يستخدم العميل وكيلًا ، فيجب استخدام طريقة request.servervariables (Remote_ADDR)
IP = request.ServerVariables (Remote_addr)
إنهاء إذا
getip = IP
وظيفة نهاية
"التحقق من الخضوع خارج الموقع
وظيفة فحص الوظيفة العامة ()
Dim Server_v1 ، server_v2
CheckPost = خطأ
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 ()
إذا طلب
getCurrentUrl = https: //
آخر
getCurrentUrl = http: //
إنهاء إذا
getCururl = getCururl & request.servervariables (server_name)
if (request.servervariables (server_port) <> 80) ثم getCurrl = getCururl &: & request.servervariables (server_port)
getCururl = getCururl & request.servervariables (url)
if (request.querystring <>) ثم getCurrl = getCururl &؟ & request.querystring
وظيفة نهاية
احصل على المصدر أو احصل على عنوان URL الحالي للمتصفح ، شاملًا أول اثنين
الوظيفة العامة geturl (t)
إذا t = 1 ثم
geturl = getCururl ()
آخر
geturl = getReferer ()
إنهاء إذا
وظيفة نهاية
'مكافحة الحفر
S1: يُسمح بالوصول بعد أكثر من ثوانٍ S1
S2: إذا كان الوقت الحالي وآخر وقت الوصول مختلفًا عن S2 Seconds ، فسيتم اعتباره منتعشًا بشكل متكرر
'Maxtimes: إذا كان عدد التحديثات المتكررة يساوي أو أكبر من Maxtimes ، سجل
'إذا كان الانتعاش بشكل متكرر ، isRefresh = صحيح ، وإلا فهو خطأ
الوظيفة العامة Isrefresh (S1 ، S2 ، Maxtimes)
خافت cachename
cachename = eventProvider_2006
إذا كان ISDate (الجلسة (Cachename & Isrefreshtime)) ، فسيتم السماح بعد ذلك بعد ثواني S1
إذا كان Datediff (s ، الجلسة (cachename & isrefreshtime) ، الآن ())> S1 ثم
الجلسة (cachename & isrefreshtime) = الآن ()
الجلسة (cachename & isrefresh) = خطأ
إنهاء إذا
إنهاء إذا
إذا كانت الجلسة (cachename و isrefresh) = صواب ثم
isrefresh = صحيح
آخر
isrefresh = خطأ
إنهاء إذا
إذا ISDate (الجلسة (Cachename & RefreshStart)) ثم
إذا كان Datediff (S ، Session (Cachename & RefreshStart) ، الآن ()) <s2 ثم '// إذا كان الوقت الحالي وآخر وقت الوصول مختلفًا عن S2 Seconds ، فسيتم اعتباره منتعشًا بشكل متكرر
الجلسة (cachename & refresht) = الجلسة (cachename & refresht) +1 '// الإحصائيات عدد التحديثات المتكررة
إذا كانت الجلسة (cachename & refresht)> = maxtimes ثم '// إذا كانت أوقات تحديث التردد تساوي أو أكبر من maxtimes ، سجل
الجلسة (cachename & isrefresh) = صواب
الجلسة (cachename & isrefreshtime) = الآن ()
إنهاء إذا
آخر
الجلسة (cachename & refresht) = 0 '// إذا لم يكن الأمر كذلك ، قم بتغيير عدد السجلات المتكررة إلى 0
إنهاء إذا
إنهاء إذا
الجلسة (Cachename & RefreshStart) = الآن () '// حجز الوقت لهذه الزيارة حتى الزيارة القادمة
وظيفة نهاية
اكتب إلى سجل قاعدة البيانات
Public Sub WriteToDB (E_Title ، C_URL ، E_NUM ، E_DES ، E_TIME ، OPERA ، IP ، REURL ، CONN)
قاتمة SQL
sql = insert في و logdbname و (etitle ، eurl ، enum ، edes ، etime ، المشغل ، IP ، enderurl) قيم (
sql = sql & '& e_title &' ، '& c_url &' ، '& e_num &' ، '& e_des &' ، '& e_time &' ، '& opera &' ، '& ip &' ، '& reurl &')
conn.execute (SQL)
نهاية الفرعية
الطبقة النهائية
٪>
مشاركة: ASP+Ajax لا يحقق أي تحديث لإضافة الأصدقاء بسبب علاقات العمل ، تتمثل إحدى الوظائف في زيادة الطرف الآخر كصديق. كما هو موضح في الشكل: الطريقة المستخدمة هي Ajax ، والرمز المناسب أقل تكلفة: a href = javaScript: void (0) ؛ onClick = add_userName ('٪ = rs (اسم المستخدم) ٪') ؛ أضف كصديق/A ، التحقق من JS المستخدم: لغة البرنامج النصي = JavaScript SRC = AJAX.