في الآونة الأخيرة، أصبحت مهووسًا بإنشاء مواقع الويب، واستخدمت ASP للتطوير، ووجدت أن ASP به العديد من الثغرات، وهناك العديد من الأكواد التي يتم إعادة استخدامها في موقع الويب، لذلك قمت بالتحقق من بعض المعلومات ووجدت أن فكرة. يمكن استخدام الفصول الدراسية في ASP، لذلك كتبت هذا الفصل، وهو ليس مكتوبًا بشكل جيد، ولكنه عملي تمامًا.
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
Const Btn_First="<fontface='webdings'>9</font>" 'تحديد نمط عرض زر الصفحة الأولى
Const Btn_Prev="<fontface='webdings'>3</font>" 'تحديد نمط عرض زر الصفحة السابقة
Const Btn_Next="<fontface='webdings'>4</font>" 'تحديد نمط عرض زر الصفحة التالية
Const Btn_Last="<fontface='webdings'>:</font>" 'تحديد نمط عرض زر الصفحة الأخيرة
فئة clsDSJ
p_Error الخاص،p_IpAdd،p_Debug،Errs
كلمات p_InvaildWords الخاصة
خاص tmpStr
objConnDivPage الخاص، rsDivPage، p_GetSQL، p_nPage
p_rsPageSize خاص، p_intCurPage، p_strURL، p_intTotalPage، p_intTotalRecords
p_dbType الخاص،p_dbFolder،p_DataBase،dbPath،p_dbUserID،p_dbPassword،p_sqlDataSource
param_DataBase الخاص،param_dbUserID،param_dbPassword،param_dbType
'ملكية
objConn العام، ConnStr، SQLQueryNum
قاعدة بيانات السجل العامة، WebURL
سجل الحفظ العام
رموز الخطأ العامة، رمز الخطأ، رسالة الخطأ
مجلد البرنامج النصي العام، اسم البرنامج النصي
فئة فرعية خاصة_تهيئة
p_Debug=صحيح
عميل متصل
SaveLog = صحيح
ErrMsg = ""
ع_خطأ=0
SQLQueryNum = 0
تهيئة اتصال قاعدة بيانات Rem
dbType=12 'خذ 1x —— الوصول، 2x —— SQL x1 —— OLEDB، x2 —— ODBC
dbFolder = "البيانات"
قاعدة البيانات = "zhubizidatabase.MDB"
معرف المستخدم = ""
ديسيبل كلمة المرور = ""
sqlDataSource = ""
p_rsPageSize=10
'p_nPage=2
إذا كان الطلب ("الصفحة") = "" إذن
p_intCurPage=1
ElseIf NOT IsNumeric(request("page")) إذن
p_intCurPage=1
ElseIf CInt(Trim(request("page")))<1 ثم
p_intCurPage=1
آخر
p_intCurPage=CInt(Trim(request("page")))
نهاية إذا
WebURL = " http://blog.csdn.net/alonesword/ "
tmpStr=Request.ServerVariables("PATH_INFO")
tmpStr=Split(tmpStr،"/"،-1)
ScriptName=Lcase(tmpStr(UBound(tmpStr)))
ScriptFolder=LCase(tmpStr(UBound(tmpStr)-1)) & "/"
p_InvaildWords = " حدد|تحديث|حذف|إدراج|@|--|;|'|#|%|xp|cmd|shell "
نهاية الفرعية
فئة فرعية خاصة_إنهاء ()
إذا كان IsObject(rsDivPage) ثم rsDivPage.Close:Set rsDivPage=لا شيء
إذا كان IsObject(objConn) ثم objConn.Close:Set objConn=لا شيء
نهاية الملكية العامة الفرعية
احصل على النسخة
الإصدار = "DSJ 1.1.0 بيتا"
نهاية الملكية
الملكية العامة تحصل على خطأ
خطأ=p_Error
نهاية الملكية
الملكية العامة احصل على التصحيح
Debug=p_Debug
نهاية الملكية
السماح للملكية العامة بتصحيح الأخطاء (BoolDebug)
إذا BoolDebug ثم
p_Debug=صحيح
آخر
p_Debug=خطأ
نهاية إذا
نهاية الملكية
الملكية العامة احصل على dbType
dbType=p_dbType
نهاية الملكية
السماح للملكية العامة dbType(lngdbType)
إذا كان IsNumeric(lngdbType) إذن
p_dbType=lngdbType
آخر
p_dbType=12
نهاية إذا
نهاية الملكية
الملكية العامة احصل على dbFolder
dbFolder=p_dbFolder
نهاية الملكية
السماح للملكية العامة dbFolder(strFolder)
إذا كان اليمين (strFolder,1) = "" أو اليمين (strFolder,1) = "/" ثم
p_dbFolder=strFolder
آخر
إذا (NOT IsNull(strFolder)) أو (strFolder<>"") ثم
p_dbFolder=strFolder & ""
آخر
p_dbFoler = ""
نهاية إذا
نهاية إذا
نهاية الملكية
الملكية العامة احصل على قاعدة البيانات
Database=p_dataBase
نهاية الملكية
قاعدة بيانات الملكية العامة (strDataBase)
p_dataBase=strDatabase
نهاية الملكية
الملكية العامة احصل على dbUserID
dbUserID=p_dbUserID
نهاية الملكية
السماح للملكية العامة dbUserID(strDataBaseUserID)
p_dbUserID=strDataBaseUserID
نهاية الملكية
الملكية العامة احصل على dbPassword
dbPassword=p_dbPassword
نهاية الملكية
الملكية العامة دع dbPassword (strDataBasePassword)
p_dbPassword=strDataBasePassword
نهاية الملكية
الملكية العامة احصل على SQLDataSource
SQLDataSource=p_sqlDataSource
نهاية الملكية
السماح للملكية العامة بـ SQLDataSource (strSQLDataSource)
إذا strsqlDataSource<>"" إذن
إذا كان Left(p_dbType,1)=2 إذن
p_sqlDataSource=strSQLDataSource
آخر
رمز الخطأ الإضافي(110)
p_sqlDataSource = ""
نهاية إذا
نهاية إذا
نهاية الملكية
الملكية العامة تسمح لـ PageSize(int_PageSize)
إذا كان IsNumeric(Int_Pagesize) ثم
p_rsPageSize=CLng(int_PageSize)
نهاية إذا
نهاية الملكية
الملكية العامة احصل على PageSize
إذا كان p_rsPageSize = "" أو ليس IsNumeric(p_rsPageSize) إذن
حجم الصفحة = 8
آخر
PageSize=p_rsPageSize
نهاية إذا
نهاية الملكية
الملكية العامة احصل على GetRs ()
إذا لم يتم تصحيح الأخطاء، فاستأنف الخطأ بعد ذلك
إذا لم يكن IsObject(objConn) ثم ConnectionDataBase dbDataBase,dbUserID,dbPassword,dbType
إذا لم يكن IsObject(rsDivPage) إذن
قم بتعيين rsDivPage=Server.createobject("adodb.recordset")
rsDivPage.Open GetSQL,objConn,1,1
rsDivPage.PageSize=PageSize
إذا لم يكن (rsDivPage.eof و rsDivPage.BOF) ثم
إذا كان p_intCurPage>rsDivPage.PageCount ثم
p_intCurPage=rsDivPage.PageCount
نهاية إذا
rsDivPage.AbsolutePage=p_intCurPage
نهاية إذا
إذا أخطأت ثم
خطأ.واضح
rsDivPage.Close
تعيين rsDivPage=لا شيء
إذا SaveLog ثم
tmpMsg="حدث خطأ أثناء الاتصال بقاعدة البيانات، يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا.<br>لأسباب أمنية، يتم عرض هذه الرسالة فقط. لعرض رسائل الخطأ التفصيلية، يرجى تعيين dsj.Debug=True"
الاستجابة.كتابة SaveSQLLog(cmd,tmpMsg)
آخر
Response.Write "حدث خطأ أثناء الاتصال بقاعدة البيانات، يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا."
نهاية إذا
الاستجابة.النهاية ()
نهاية إذا
SQLQueryNum=SQLQueryNum+1
قم بتعيين GetRs=rsDivPage
نهاية إذا
نهاية الملكية
الملكية العامة دع GetSQL(str_sql)
إذا str_sql<>"" ثم
p_GetSQL=str_sql
آخر
رمز الخطأ الإضافي(111)
إذا تم التصحيح ثم ShowErrMsg ()
p_GetSQL="خاصية GetSQL فارغة."
نهاية إذا
نهاية الملكية
الملكية العامة احصل على GetSQl()
GetSQL=p_GetSQL
نهاية الملكية
'*********************************
'الاسم: حصلت على الموضوع
'المعلمات: str، strlen
"قيمة الإرجاع: سلسلة مقيدة."
"وقت الإنشاء: 3 مارس 2005
'الوظيفة: الحد من السلسلة المقيدة
'*********************************
الوظيفة العامة GotToPic(str,strlen)
Rem يحد من طول عرض السلسلة إلى نطاق معين
Dim i,StringLen,CharSize,EchoCharType
StringLen = لين (شارع)
حجم شار = 0
لأني = 1 إلى StringLen
EchoCharType=Abs(تصاعدي(Mid(str,i,1)))
إذا EchoCharType> 255 ثم
CharSize=CharSize+2
آخر
CharSize=CharSize+1
نهاية إذا
إذا CharSize>strlen ثم
gotTopic=Left(str,i) & "..."
الخروج ل
آخر
gotTopic=str & ""
نهاية إذا
التالي
وظيفة النهاية
'*********************************
'الاسم: ChkInvStr
'المعلمة: شارع
'قيمة الإرجاع: صحيح/خطأ
"وقت الإنشاء: 2 مايو 2005
'الوظيفة: التحقق مما إذا كانت المعلمات تحتوي على أحرف غير قانونية
'*********************************
الوظيفة العامة ChkInvStr(Str)
يحدد Rem الأحرف غير القانونية التي يجب تصفيتها
خافت InvaildWord، في الكلمات، ط
سلسلة = CStr(سلسلة)
ChkInvStr=False
إذا Len(Replace(p_InvaildWords,Chr(0),"")<1 ثم
AddErrorCode(103) 'invaildwords فارغة
وظيفة الخروج
آخر
إذا كان Instr(1,p_Invaildwords,"|")>0 إذن
InvaildWord=Split(p_InvaildWords,"|")
inWords=LCase(Trim(Str))
بالنسبة إلى i=LBound(InvaildWord) إلى UBound(InvaildWord)
إذا Instr(inWords,InvaildWord(i))>0 ثم
p_Error=1982
رمز الخطأ الإضافي(105)
ChkInvStr=True
وظيفة الخروج
نهاية إذا
التالي
آخر
مطلوب AddErrorCode(104) '"|"
وظيفة الخروج
نهاية إذا
نهاية إذا
وظيفة النهاية
'*********************************
'الاسم: GetIP
'المعلمة: فارغة
'قيمة الإرجاع: فارغة
"وقت الإنشاء: 3 مايو 2005
'الوظيفة: الحصول على عنوان IP الخاص بالمستخدم
'*********************************
الوظيفة العامة GetIP()
p_IpAdd=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
إذا كان IsNull(p_IpAdd) أو p_IpAdd="" ثم
p_IpAdd=Request.ServerVariables("REMOTE_ADDR")
نهاية إذا
GetIp=p_IpAdd
وظيفة النهاية
'*********************************
'الاسم: عنوان IP
'المعلمة: رشفة
'قيمة الإرجاع: المقاطعة، المدينة
'الوظيفة: تنضيد وتحويل محتوى البيانات
"وقت الإنشاء: 6 مايو 2005
'المصدر: www.downcodes.com
'*********************************
عنوان IP للوظيفة العامة (SIP)
خافت IPConnStr،IPConn،IPAddressDB
خافت str1، str2، str3، str4
رقم خافت
البلد الخافت، المدينة، العنوان
حقوق الملكية الفكرية الخافتة، SQL
العنوان = "غير معروف"
إذا كان IsNumeric(Left(sip,2)) إذن
إذا كان sip = "127.0.0.1" ثم sip = "192.168.0.1"
str1=Left(sip,InStr(sip,".")-1)
sip=mid(sip,instr(sip,".")+1)
str2=Left(sip,instr(sip,".")-1)
sip=Mid(sip,InStr(sip,".")+1)
str3=يسار(sip,instr(sip,".")-1)
str4=Mid(sip,instr(sip,".")+1)
إذا كان isNumeric(str1)=0 أو isNumeric(str2)=0 أو isNumeric(str3)=0 أو isNumeric(str4)=0 إذن
آخر
الأسطوانات=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
IPAddressDB = "DSJ_Ipaddress.mdb"
IPConnStr = "الموفر = Microsoft.Jet.OLEDB.4.0؛ مصدر البيانات = "& Server.MapPath(p_dbFolder & IPAddressDB)
تعيين IPConn = Server.CreateObject("ADODB.Connection")
IPConn.فتح IpConnStr
الدولة = "آسيا"
المدينة =""
sql="اختر أعلى 1 بلد، مدينة من DSJ_IPAddress حيث ip1 <="&num&" وip2 >="&num&""
تعيين IPRS=IPConn.execute(sql)
إذا لم يكن (IPRs.EOF وIPRs.bof) إذن
البلد=حقوق الملكية الفكرية(0)
المدينة=حقوق الملكية الفكرية(1)
نهاية إذا
IpRs.Close:Set IPRs=لا شيء
IPConn.CLose:Set IPConn = لا شيء
SqlQueryNum = SqlQueryNum+1
نهاية إذا
IPAddress=country&city
نهاية إذا
وظيفة النهاية
'*********************************
'الاسم: ClientConnected
'المعلمة: فارغة
'قيمة الإرجاع: فارغة
"وقت الإنشاء: 5 مايو 2005
'الوظيفة: معرفة ما إذا كان المستخدم متصلاً بالخادم
'*********************************
العميل الفرعي العام متصل ()
إذا كان Response.IsClientConnected بعد ذلك
الاستجابة. فلوش ()
آخر
الاستجابة.النهاية ()
نهاية إذا
نهاية الفرعية
'*********************************
'الاسم: ChkPost
'المعلمة: فارغة
'قيمة الإرجاع: صحيح/خطأ
"وقت الإنشاء: 5 مايو 2005
'الوظيفة: التحقق من مصدر البيانات المقدمة
'*********************************
الوظيفة العامة ChkPost()
تعتيم Server_v1، Server_v2
ChkPost=خطأ
Server_v1=CStr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=CStr(Request.ServerVariables("SERVER_NAME"))
إذا كان Mid(Server_v1,8,Len(Server_v2))=Server_v2 ثم ChkPost=True
وظيفة النهاية
'*********************************
'الاسم: AddErrorCode
'المعلمة: رمز الخطأ
'قيمة الإرجاع: ErrCodes
"وقت الإنشاء: 3 مايو 2005
'الوظيفة: إضافة رموز الخطأ إلى ErrCodes
'*********************************
رمز الخطأ الفرعي العام (رمز الخطأ)
إذا ErrCodes = "" ثم
ErrCodes=ErrCode
آخر
ErrCodes=ErrCodes & ""، & ErrCode
نهاية إذا
نهاية الفرعية
'*********************************
'الاسم: ShowErrMsg
'المعلمة: فارغة
'قيمة الإرجاع: فارغة
"وقت الإنشاء: 3 مايو 2005
'الوظيفة: عرض معلومات مفصلة عن الخطأ
'*********************************
الوظيفة العامة ShowErrMsg()
إذا لم يكن p_Debug ثم عند الخطأ، استأنف التالي
إذا ErrCodes<>"" إذن
iErrCodes=Split(ErrCodes،"،"،،-1،Binary)
بالنسبة إلى i=LBound(iErrCodes) إلى UBound(iErrCodes)
tmpErrCode=CLng(iErrCodes(i))
إذا كان IsNumeric(tmpErrCode) إذن
ErrMsg=ErrMsg & ErrDetails(tmpErrCode)
نهاية إذا
التالي
نهاية إذا
ShowErrMsg=ErrMsg
وظيفة النهاية
'*********************************
'الاسم: قاعدة بيانات الاتصال
'المعلمات: قاعدة البيانات، p_dbUserID، p_dbPassword، p_dbType
'قيمة الإرجاع: فارغة
'الوظيفة: الاتصال بقاعدة البيانات
"وقت الإنشاء: 6 مايو 2005
'*********************************
الوظيفة العامة ConnectionDataBase(param_DataBase,param_dbUserID,param_dbPassword,param_dbType)
إذا لم يكن p_Debug ثم عند الخطأ، استأنف التالي
عميل متصل
إذا كان IsNumeric(param_dbType) إذن
تعيين objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionTimeOut=10 'اضبط مهلة الاتصال على 10 ثوانٍ
dbPath=Server.MapPath(p_dbFolder¶m_DataBase)
'الاستجابة.اكتب dbPath
حدد الحالة param_dbType
الحالة 11: "قاعدة بيانات الوصول (OLEDB)"
ConnStr="Provider=Microsoft.Jet.Oledb.4.0;Data Source="&dbPath&";معرف المستخدم="¶m_dbUserID&";Password="¶m_dbPassword&""
الحالة 21: خادم SQL (OLEDB)
ConnStr="Provider=SQLOLEDB;الكتالوج الأولي ="¶m_DataBase&";مصدر البيانات ="&p_sqlDataSource&";معرف المستخدم ="¶m_dbUserID&";Password ="¶m_dbPassword&""
الحالة 12: 'قاعدة بيانات الوصول (ODBC)
ConnStr="Driver={Microsoft Access Driver (*.mdb)};DBQ="&dbPath&";معرف المستخدم="¶m_dbUserID&";Password="¶m_dbPassword
الحالة 22: خادم SQL (ODBC)
ConnStr="Driver={SQL Server};DataBase="¶m_DataBase&";Server="&p_sqlDataSource&";معرف المستخدم="¶m_dbUserID&";Password="¶m_dbPassword&""
حالة أخرى:
رمز الخطأ الإضافي(100)
إذا كان p_Debug ثم Response.Write ShowErrMsg()
"وظيفة الخروج".
إنهاء التحديد
objConn.ConnectionString=ConnStr
objConn.Open
قم بتعيين ConnectionDataBase=objConn
إذا أخطأت ثم
خطأ.واضح
إذا SaveLog ثم
tmpMsg="حدث خطأ أثناء الاتصال بقاعدة البيانات، يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا.<br>لأسباب أمنية، يتم عرض هذه المعلومات فقط. لعرض معلومات مفصلة عن الخطأ، يرجى تعيين dsj.Debug=True"
cmd="تنفيذ أمر :"¶m_dbtype
الاستجابة.كتابة SaveSQLLog(cmd,tmpMsg)
آخر
Response.Write "حدث خطأ أثناء الاتصال بقاعدة البيانات. يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا."
نهاية إذا
رمز الخطأ الإضافي(101)
تعيين objConn=لا شيء
الاستجابة.النهاية ()
نهاية إذا
نهاية إذا
وظيفة النهاية
'*********************************
'الاسم: SaveSQLLog
'المعلمات: sCommand، Msg
'قيمة الإرجاع: رسالة
'الوظيفة: تخزين السجلات
"وقت الإنشاء: 6 مايو 2005
'*********************************
الوظيفة العامة SaveSQLLog(sCommand,Msg)
إذا لم يكن p_Debug ثم عند الخطأ، استأنف التالي
سجلDB = "DSJ_SQLLog.mdb"
'ConnectionDataBase logDB,p_dbUserID,p_dbPassword,12
logConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;مصدر البيانات =" & Server.MapPath(p_dbFolder & logDB)
تعيين logConn = Server.CreateObject("ADODB.Connection")
logConn.Open logConnStr
إذا SaveLog ثم
سجل خافتCmd
logCmd = "إدراج في قيم DSJ_SQL_Log (الأمر، اسم البرنامج النصي، مستخدم السجل، IP) "
logCmd=logCmd & "('" & Replace(Left(sCommand,255),"'"،''") &"','" & (ScriptFolder & ScriptName) &"','" & Session("المستخدم ") & "','"& GetIP & "')"
'Response.Write "يلزم تنفيذ الأمر:<br><font color=red>" & logCmd & "</font><BR>"
logConn.Execute(logCmd)
نهاية إذا
logConn.Close
تعيين logConn=لا شيء
SaveSQLLog=msg
SQLQueryNum=SQLQueryNum+1
وظيفة النهاية
'*********************************
'الاسم: ExecuteCmd
"المعلمة: كمد
'قيمة الإرجاع: مجموعة السجلات
'الوظيفة: إرجاع مجموعة السجلات التي تم إنشاؤها بواسطة cmd
"وقت الإنشاء: 6 مايو 2005
'*********************************
تنفيذ الوظيفة العامةCmd(cmd)
إذا لم يكن IsObject(objConn) ثم ConnectionDataBase p_DataBase,p_dbUserID,p_dbPassword,p_dbType
إذا لم يكن p_Debug ثم عند الخطأ، استأنف التالي
عميل متصل
تعيين ExecuteCmd=objConn.Execute(cmd)
إذا أخطأت ثم
خطأ.واضح
objConn.Close
تعيين objConn=لا شيء
إذا SaveLog ثم
tmpMsg="تم العثور على خطأ عند الاستعلام عن البيانات، يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا.<br>لأسباب أمنية، يتم عرض هذه المعلومات فقط. لعرض معلومات مفصلة عن الخطأ، يرجى تعيين dsj.Debug=True"
الاستجابة.كتابة SaveSQLLog(cmd,tmpMsg)
آخر
Response.Write "تم العثور على خطأ عند الاستعلام عن البيانات. يرجى التحقق مما إذا كان رمز الاستعلام الخاص بك صحيحًا."
نهاية إذا
الاستجابة.النهاية ()
نهاية إذا
SQLQueryNum=SQLQueryNum+1
وظيفة النهاية
'*********************************
'الاسم: HTMLEncode
"المعلمة: fString."
'قيمة الإرجاع: HTMLEncode
'الوظيفة: تنضيد وتحويل محتوى البيانات
"وقت الإنشاء: 6 مايو 2005
'*********************************
الوظيفة العامة HTMLEncode(fString)
إذا لم يكن IsNull(fString) أو fString<>"" إذن
fString=Replace(fString,"<"،<")
fString=Replace(fString،">"،">")
fString=Replace(fString,Chr(9)," ") 'خط مائل
fString=Replace(fString,Chr(13),"")
fString=Replace(fString,Chr(32)," ") 'تحويل المسافات
fString=Replace(fString,Chr(34),""") 'تحويل علامات الاقتباس المزدوجة
fString=Replace(fString,Chr(39),"'") 'تحويل علامات الاقتباس المفردة
fString=Replace(fString,Chr(10),"</p><p>") 'تحويل إلى تنسيق الفقرة
fString=Replace(fString,Chr(10),"<BR> ") 'التحويل إلى السطر التالي
fString=Replace(fString,Chr(13),"<BR>")
fString=Replace(fSting,vbCrlf,"<BR>")
'fString=LinkFriend(fString)
'fString=ChkBadWords(fString)
HTMLEncode=fString
نهاية إذا
وظيفة النهاية
'*********************************
'الاسم: لينك فريند
'المعلمة: المحتوى
'قيمة الإرجاع: LinkFriend
'الوظيفة: استبدال الاتصالات الودية
"وقت الإنشاء: 6 مايو 2005
'*********************************
رابط الوظيفة العامة (fContent)
إذا لم يكن p_Debug ثم عند الخطأ، استأنف التالي
إذا لم يكن IsObject(objConn) ثم ConnectionDataBase DataBase،dbUserID،dbPassword،dbType
تعيين rsFriend=ExecuteCmd("اختر عنوان URL من dsj_FriendLink")
إذا rsFriend.Eof وrsFriend.Bof ثم
آخر
افعل بينما لا rsFriend.Eof
strTitle=rsFriend.Fields.Item("العنوان")
URl=rsFriend.Fields.Item("URL")
إذا كان LCase(Left(URL,1))<>"h" ثم URL=Replace(URl,Left(URL,1),"")
strLink="<a target='_blank' title='" & strTitle &"' href='" & URL & "'>"
strLink=strLink&strTitle&"</a>"
إذا كان Instr(fContent,strTitle)>0 ثم fContent=Replace(fContent,strTitle,strLink)
rsFriend.MoveNext
حلقة
LinkFriend=fContent
نهاية إذا
rsFriend.Close
تعيين rsFriend=لا شيء
SQLQueryNum=SQLQueryNum+1
وظيفة النهاية
'********************************************************************************************************************************************************************************* * *****************
'الاسم: صفحة العرض
'المعلمة: فارغة
'قيمة الإرجاع: فارغة
'الوظيفة: عرض التنقل في سجل الترحيل
'يوضح:
'العمل الأصلي: zykj2000 الموقع الإلكتروني: http://bbs.513soft.net
' التعديل: موقع Alonesword: http://blog.csdn.net/alonesword/
'الزمن: 7 مايو 2005
'********************************************************************************************************************************************************************************* * ****************
صفحة العرض الفرعية العامة ()
خافت str_tmp
p_intTotalRecords=rsDivPage.RecordCount
إذا كان p_intTotalRecords<=0 ثم
p_Error=p_Error & "إجمالي عدد السجلات صفر، الرجاء إدخال البيانات"
استدعاء ShowError()
نهاية إذا
إذا كان p_intTotalRecords <=PageSize ثم
p_intTotalPage=1
آخر
إذا كان p_intTotalRecords mod PageSize = 0 إذن
p_intTotalPage = CLng(p_intTotalRecords / حجم الصفحة * -1)*-1
آخر
p_intTotalPage = CLng(p_intTotalRecords / PageSize * -1)*-1+1
نهاية إذا
نهاية إذا
إذا كان p_intCurPage>p_intTotalPage ثم
p_intCurPage=p_intTotalPage
نهاية إذا
الاستجابة.اكتب ShowFirstPrv
showNumBtn
استجابة.اكتب ShowNextLast&" "
الاستجابة.اكتب ShowPageInfo
استجابة. اكتب str_tmp
نهاية الوظيفة الخاصة الفرعية
ShowFirstPrv()
خافت Str_tmp,int_prvpage
int_prvpage=p_intCurPage-1
إذا كان int_prvpage<1 ثم int_prvpage=1
Btn_FirstLink="<a title='صفحة 1' href='"&AddnPageURL&"1'>"&Btn_First
Btn_PrevLink="<a title='Page"&int_prvpage&" href='"&AddnPageURL&p_intCurPage-1&"'>"&Btn_Prev
إذا p_intCurPage=1 ثم
str_tmp=Btn_FirstLink&"</a> "&Btn_PrevLink&"</a> "
آخر
int_prvpage=p_intCurPage-1
str_tmp=""&Btn_FirstLink&"</a> "& Btn_PrevLink&"</a> "
نهاية إذا
ShowFirstPrv=str_tmp
وظيفة النهاية
الوظيفة الخاصة ShowNextLast()
خافت str_tmp،int_Nextpage
int_NextPage=p_intCurPage+1
إذا كان p_intCurPage+1>p_intTotalPage ثم int_NextPage=p_intTotalPage
Btn_NextLink="<a title='Page"&int_NextPage&"' href='"&AddnPageURL&p_intCurPage+1&"'>"&Btn_Next
Btn_LastLink="<a title='Page"&p_intTotalPage&" href='"&AddnPageURL&p_intTotalPage&"'>"&Btn_Last
إذا كان p_intCurPage>=p_intTotalPage ثم
str_tmp=Btn_NextLink & "</a> " & Btn_LastLink&"</a>"
آخر
Int_NextPage=p_intCurPage+1
str_tmp=""&Btn_NextLink&"</a> "& Btn_LastLink&"</a>"
نهاية إذا
ShowNextLast=str_tmp
وظيفة نهاية
الوظيفة الخاصة showNumBtn()
خافت أنا، str_tmp
خافت رابط الصفحة
str_tmp = ""
من أجل i=1 إلى p_intTotalPage الخطوة 1
PageLink=" <a title='Page"&i&" href='"&AddnPageURL&i&"'>"&i&"</a> "
إذا i=p_intCurPage ثم PageLink=" <a title='Page"&i&" href='"&AddnPageURL&i&"'><font color=red>"&i&"</font></a> "
الاستجابة.اكتب رابط الصفحة
التالي
showNumBtn=str_tmp
وظيفة النهاية
الوظيفة الخاصة ShowPageInfo()
خافت str_tmp
str_tmp="الصفحة:"&p_intCurPage&"/"&p_intTotalPage&"إجمالي الصفحة"&p_intTotalRecords&"السجلات"&p_rsPageSize&"السجلات/لكل صفحة"
ShowPageInfo=str_tmp
وظيفة النهاية
الوظيفة الخاصة AddnPageURL()
Dim i,j,search_str,result_url
search_str = "صفحة ="
str_params=Request.ServerVariables("QUERY_STRING")
إذا str_params = "" ثم
result_url=ScriptName & "?page="
آخر
إذا كان InstrRev(str_params,search_str)=0 إذن
result_url=ScriptName & "؟" & str_params &"&page="
آخر
j=InstrRev(str_params,search_str)-2
إذا ي = -1 ثم
result_url=ScriptName & "?page="
آخر
str_params=يسار(str_params,j)
result_url=ScriptName & "؟" & str_params &"&page="
نهاية إذا
نهاية إذا
نهاية إذا
AddnPageURL=result_url
وظيفة النهاية
'********************************************************************************************************************************************************************************* * ****************
الوظيفة العامة GetName(خيارات)
خافت tmpName
tmpName=Request.ServerVariables("PATH_INFO")
arrTmpName=Split(tmpName,"/")
إذا كانت الخيارات=0 ثم GetName=Server.Mappath(".")&GetName(1)
إذا كانت الخيارات=1 ثم GetName=LCase(arrTmpName(UBound(arrTmpName)))
إذا كانت الخيارات=2 ثم GetName=LCase(arrTmpName(UBound(arrTmpName)-1))&"/"
وظيفة النهاية
نهاية الفصل
%>