ช่วงนี้ฉันหมกมุ่นอยู่กับการทำเว็บไซต์ ฉันใช้ ASP ในการพัฒนา ฉันพบว่า ASP มีช่องโหว่มากมายและมีโค้ดจำนวนมากที่ถูกนำมาใช้ซ้ำในเว็บไซต์ ดังนั้นฉันจึงตรวจสอบข้อมูลบางอย่างและพบว่าแนวคิดของ คลาสต่างๆ สามารถใช้ใน ASP ได้ ดังนั้นฉันจึงเขียนคลาสนี้ แม้จะเขียนได้ไม่ดีนัก แต่ก็ใช้งานได้จริง
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
-
Const Btn_First="<font face='webdings'>9</font>" 'กำหนดรูปแบบการแสดงปุ่มหน้าแรก
Const Btn_Prev="<font face='webdings'>3</font>" 'กำหนดรูปแบบการแสดงปุ่มหน้าก่อนหน้า
Const Btn_Next="<font face='webdings'>4</font>" 'กำหนดรูปแบบการแสดงปุ่มหน้าถัดไป
Const Btn_Last="<font face='webdings'>:</font>" 'กำหนดรูปแบบการแสดงปุ่มหน้าสุดท้าย
Class clsDSJ
p_Error ส่วนตัว, p_IpAdd, p_Debug, ข้อผิดพลาด
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
logDB สาธารณะ, WebURL
บันทึกบันทึกสาธารณะ
ErrCodes สาธารณะ,ErrCode,ErrMsg
โฟลเดอร์สคริปต์สาธารณะ ชื่อสคริปต์
คลาสย่อยส่วนตัว_เริ่มต้น
p_Debug=จริง
ลูกค้าเชื่อมต่อแล้ว
SaveLog=จริง
ผิดพลาดข้อความ=""
p_ข้อผิดพลาด=0
SQLQueryNum=0
การเริ่มต้นการเชื่อมต่อฐานข้อมูล Rem
dbType=12 'ใช้ 1x——การเข้าถึง, 2x——SQL; x1——OLEDB, x2——ODBC
dbFolder = "ข้อมูล"
ฐานข้อมูล = "zhubizidatabase.MDB"
dbUserID = ""
dbรหัสผ่าน = ""
sqlDataSource = ""
p_rsPageSize=10
'p_nPage=2
หาก request("page")="" จากนั้น
p_intCurPage=1
ElseIf NOT IsNumeric(request("page")) จากนั้น
p_intCurPage=1
ElseIf CInt(Trim(request("page")))<1 จากนั้น
p_intCurPage=1
อื่น
p_intCurPage=CInt(ตัดแต่ง(คำขอ("หน้า")))
สิ้นสุดถ้า
เว็บURL=" http://blog.csdn.net/alonesword/ "
tmpStr=Request.ServerVariables("PATH_INFO")
tmpStr=แยก(tmpStr,"/",-1)
ScriptName=Lcase(tmpStr(UBound(tmpStr)))
ScriptFolder=LCase(tmpStr(UBound(tmpStr)-1)) & "/"
p_InvaildWords=" เลือก|อัปเดต|ลบ|แทรก|@|--|;|'|#|%|xp|cmd|shell "
จบหมวดย่อย
Class_terminate ส่วนตัวย่อย ()
ถ้า IsObject(rsDivPage) ดังนั้น rsDivPage.Close:Set rsDivPage=Nothing
ถ้า IsObject(objConn) ดังนั้น objConn.Close:Set objConn=Nothing
สิ้นสุด
ทรัพย์สินสาธารณะย่อยรับเวอร์ชัน
รุ่น = "DSJ 1.1.0 เบต้า"
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะได้รับข้อผิดพลาด
ข้อผิดพลาด=p_ข้อผิดพลาด
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะได้รับการดีบัก
ดีบัก=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)
ถ้า Right(strFolder,1)="" หรือ Right(strFolder,1)="/" จากนั้น
p_dbFolder=strFolder
อื่น
ถ้า (NOT IsNull(strFolder)) หรือ (strFolder<>"") จากนั้น
p_dbFolder=strFolder & ""
อื่น
p_dbFoler=""
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับฐานข้อมูล
ฐานข้อมูล=p_dataBase
สิ้นสุดคุณสมบัติ
ฐานข้อมูลทรัพย์สินสาธารณะ (strDataBase)
p_dataBase=strฐานข้อมูล
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ 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=ขนาดหน้า
หากไม่ใช่ (rsDivPage.eof และ rsDivPage.BOF) จากนั้น
ถ้า p_intCurPage>rsDivPage.PageCount แล้ว
p_intCurPage=rsDivPage.PageCount
สิ้นสุดถ้า
rsDivPage.AbsolutePage=p_intCurPage
สิ้นสุดถ้า
หากผิดพลาดแล้ว
ผิดพลาด.เคลียร์
rsDivPageปิด
ตั้งค่า 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
สิ้นสุดคุณสมบัติ
-
'ชื่อ: gotTopic
'พารามิเตอร์: str, strlen
'ค่าส่งคืน: สตริงที่ถูกจำกัด'
'เวลาสร้าง: 3 มีนาคม 2548
'ฟังก์ชั่น: จำกัดสตริงที่ถูกจำกัด'
-
ฟังก์ชั่นสาธารณะ GotToPic (str, strlen)
Rem จำกัดความยาวของการแสดงสตริงให้อยู่ในช่วงที่กำหนด
หรี่ฉัน, StringLen, CharSize, EchoCharType
StringLen=เลน(str)
ขนาดตัวอักษร=0
สำหรับ i=1 ถึง StringLen
EchoCharType=Abs(Asc(กลาง(str,i,1)))
ถ้า EchoCharType>255 แล้ว
CharSize=ขนาด CharSize+2
อื่น
ถ่านขนาด=ถ่านขนาด+1
สิ้นสุดถ้า
ถ้า CharSize>strlen แล้ว
gotTopic=ซ้าย(str,i) & "..."
ออกเพื่อ
อื่น
gotTopic=str & ""
สิ้นสุดถ้า
ต่อไป
ฟังก์ชันสิ้นสุด
-
'ชื่อ: ChkInvStr
'พารามิเตอร์: Str
'ค่าส่งคืน: จริง/เท็จ
'เวลาสร้าง: 2 พฤษภาคม 2548
'ฟังก์ชัน: ตรวจสอบว่าพารามิเตอร์มีอักขระที่ไม่ถูกต้องหรือไม่
-
ฟังก์ชั่นสาธารณะ ChkInvStr(Str)
Rem กำหนดอักขระที่ผิดกฎหมายซึ่งจำเป็นต้องกรอง
Dim InvaildWord, inWords, i
Str=CTR(Str)
ChkInvStr=เท็จ
ถ้า Len(Replace(p_InvaildWords,Chr(0),""))<1 จากนั้น
AddErrorCode(103) 'คำที่ไม่ถูกต้องเป็นโมฆะ
ออกจากฟังก์ชัน
อื่น
ถ้า Instr(1,p_Invaildwords,"|")>0 แล้ว
InvaildWord=แยก(p_InvaildWords,"|")
inWords=LCase(ตัดแต่ง(Str))
สำหรับ i=LBound(InvaildWord) ถึง UBound(InvaildWord)
ถ้า Instr(inWords,InvaildWord(i))>0 แล้ว
p_ข้อผิดพลาด=1982
เพิ่มรหัสข้อผิดพลาด (105)
ChkInvStr=จริง
ออกจากฟังก์ชัน
สิ้นสุดถ้า
ต่อไป
อื่น
ต้องระบุ AddErrorCode(104) '"|"
ออกจากฟังก์ชัน
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ชื่อ: GetIP
'พารามิเตอร์: NULL
'ค่าส่งคืน: NULL'
'เวลาสร้าง: 3 พฤษภาคม 2548
'ฟังก์ชัน: รับที่อยู่ 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 พฤษภาคม 2548
ที่มา: www.downcodes.com
-
IPAddress ฟังก์ชั่นสาธารณะ (sip)
หรี่ IPConnStr,IPConn,IPAddressDB
หรี่แสง str1,str2,str3,str4
หมายเลขติ่มซำ
ประเทศ เมือง ที่อยู่ สลัว
IPR ต่ำ, SQL
ที่อยู่ = "ไม่ทราบ"
ถ้า IsNumeric(Left(sip,2)) จากนั้น
ถ้า sip="127.0.0.1" จากนั้น sip="192.168.0.1"
str1=ซ้าย(จิบ,InStr(จิบ,".")-1)
จิบ=กลาง(จิบ,instr(จิบ,".")+1)
str2=ซ้าย(sip,instr(sip,".")-1)
sip=กลาง(จิบ,InStr(จิบ,".")+1)
str3=ซ้าย(sip,instr(sip,".")-1)
str4=Mid(sip,instr(sip,".")+1)
ถ้า isNumeric(str1)=0 หรือ isNumeric(str2)=0 หรือ isNumeric(str3)=0 หรือ isNumeric(str4)=0 จากนั้น
อื่น
num=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:ตั้งค่า IPRs=ไม่มีอะไร
IPConn.CLose:ตั้งค่า IPConn = ไม่มีเลย
SqlQueryNum = SqlQueryNum+1
สิ้นสุดถ้า
IPAddress=ประเทศ&เมือง
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ชื่อ: ClientConnected
'พารามิเตอร์: NULL
'ค่าส่งคืน: NULL'
'เวลาสร้าง: 5 พฤษภาคม 2548
'ฟังก์ชั่น: รับว่าผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์หรือไม่
-
ClientConnected สาธารณะย่อย ()
ถ้า Response.IsClientConnected แล้ว
การตอบสนองฟลัช()
อื่น
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
จบหมวดย่อย
-
'ชื่อ: ชกโพสต์
'พารามิเตอร์: NULL
'ค่าส่งคืน: จริง/เท็จ
'เวลาสร้าง: 5 พฤษภาคม 2548
'ฟังก์ชั่น: ตรวจสอบแหล่งที่มาของข้อมูลที่ส่ง
-
ฟังก์ชั่นสาธารณะ ChkPost()
ติ่ม Server_v1, Server_v2
ChkPost=เท็จ
Server_v1=CStr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=CStr(Request.ServerVariables("SERVER_NAME"))
ถ้ากลาง(Server_v1,8,Len(Server_v2))=Server_v2 ดังนั้น ChkPost=True
ฟังก์ชันสิ้นสุด
-
'ชื่อ: AddErrorCode
'พารามิเตอร์:ErrCode'
'ค่าที่ส่งคืน: ErrCodes
'เวลาสร้าง: 3 พฤษภาคม 2548
'ฟังก์ชั่น: เพิ่มรหัสข้อผิดพลาดให้กับ ErrCodes'
-
AddErrorCode ย่อยสาธารณะ (ErrCode)
ถ้า ErrCodes="" แล้ว
ErrCodes=รหัสข้อผิดพลาด
อื่น
ErrCodes=รหัสข้อผิดพลาด & "," & รหัสข้อผิดพลาด
สิ้นสุดถ้า
จบหมวดย่อย
-
'ชื่อ: ShowErrMsg
'พารามิเตอร์: NULL
'ค่าส่งคืน: NULL'
'เวลาสร้าง: 3 พฤษภาคม 2548
'ฟังก์ชัน: แสดงข้อมูลข้อผิดพลาดโดยละเอียด
-
ฟังก์ชั่นสาธารณะ ShowErrMsg()
หากไม่ใช่ p_Debug แสดงว่าเกิดข้อผิดพลาดดำเนินการต่อถัดไป
หาก ErrCodes<>"" จากนั้น
iErrCodes=Split(ErrCodes,",",-1,ไบนารี)
สำหรับ i=LBound(iErrCodes) ถึง UBound(iErrCodes)
tmpErrCode=CLng(iErrCodes(i))
ถ้า IsNumeric(tmpErrCode) แล้ว
ErrMsg=ErrMsg & ErrDetails(tmpErrCode)
สิ้นสุดถ้า
ต่อไป
สิ้นสุดถ้า
ShowErrMsg=ข้อผิดพลาด Msg
ฟังก์ชันสิ้นสุด
-
'ชื่อ: ConnectionDataBase
'พารามิเตอร์:ฐานข้อมูล,p_dbUserID,p_dbPassword,p_dbType
'ค่าส่งคืน: NULL'
'ฟังก์ชัน: เชื่อมต่อกับฐานข้อมูล'
'เวลาสร้าง: 6 พฤษภาคม 2548
-
ฟังก์ชั่นสาธารณะ 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;แหล่งข้อมูล="&dbPath&";ID ผู้ใช้="¶m_dbUserID&";รหัสผ่าน="¶m_dbPassword&""
กรณีที่ 21: 'เซิร์ฟเวอร์ SQL (OLEDB)
ConnStr="Provider=SQLOLEDB;Initial Catalog="¶m_DataBase&";Data Source="&p_sqlDataSource&";User ID="¶m_dbUserID&";Password="¶m_dbPassword&""
กรณีที่ 12: 'ฐานข้อมูลการเข้าถึง (ODBC)
ConnStr="ไดรเวอร์={ไดรเวอร์ Microsoft Access (*.mdb)};DBQ="&dbPath&";รหัสผู้ใช้="¶m_dbUserID&";รหัสผ่าน="¶m_dbPassword
กรณีที่ 22: 'เซิร์ฟเวอร์ SQL (ODBC)
ConnStr="ไดรเวอร์={SQL Server};DataBase="¶m_DataBase&";Server="&p_sqlDataSource&";ID ผู้ใช้="¶m_dbUserID&";รหัสผ่าน="¶m_dbPassword&""
กรณีอื่น:
เพิ่มรหัสข้อผิดพลาด (100)
ถ้า p_Debug แล้ว Response.Write ShowErrMsg()
'ออกจากฟังก์ชัน
สิ้นสุดการเลือก
objConn.ConnectionString=ConnStr
objConn.เปิด
ตั้งค่า ConnectionDataBase=objConn
หากผิดพลาดแล้ว
ผิดพลาด.เคลียร์
ถ้า SaveLog แล้ว
tmpMsg="เกิดข้อผิดพลาดระหว่างการเชื่อมต่อฐานข้อมูล โปรดตรวจสอบว่ารหัสการสืบค้นของคุณถูกต้องหรือไม่<br>เพื่อความปลอดภัย จะแสดงเฉพาะข้อมูลนี้ หากต้องการดูข้อมูลข้อผิดพลาดโดยละเอียด โปรดตั้งค่า dsj.Debug=True"
cmd="ดำเนินการคำสั่งของ :"¶m_dbtype
การตอบสนองเขียน SaveSQLLog(cmd,tmpMsg)
อื่น
Response.Write "เกิดข้อผิดพลาดขณะเชื่อมต่อกับฐานข้อมูล โปรดตรวจสอบว่ารหัสแบบสอบถามของคุณถูกต้องหรือไม่"
สิ้นสุดถ้า
เพิ่มรหัสข้อผิดพลาด (101)
ตั้งค่า objConn=ไม่มีอะไร
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ชื่อ: SaveSQLLog
'พารามิเตอร์:sCommand,ข่าวสารเกี่ยวกับ
'ค่าส่งคืน: msg
'ฟังก์ชัน: บันทึกการจัดเก็บ'
'เวลาสร้าง: 6 พฤษภาคม 2548
-
ฟังก์ชั่นสาธารณะ SaveSQLLog (sCommand, Msg)
หากไม่ใช่ p_Debug แสดงว่าเกิดข้อผิดพลาดดำเนินการต่อถัดไป
logDB = "DSJ_SQLLog.mdb"
'ConnectionDataBase logDB,p_dbUserID,p_dbPassword,12
logConnStr = "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0; แหล่งข้อมูล = " & Server.MapPath (p_dbFolder & logDB)
ตั้งค่า logConn = Server.CreateObject("ADODB.Connection")
logConn.เปิด logConnStr
ถ้า SaveLog แล้ว
Dim logCmd
logCmd="INSERT INTO DSJ_SQL_Log (Command,ScriptName,logUser,IP) ค่า "
logCmd=logCmd & "('" & แทนที่ (ซ้าย (sCommand, 255),"', "''") &"','" & (ScriptFolder & ScriptName) &"','" & เซสชัน ("ผู้ใช้ ") & "','"& รับ IP & "')"
'Response.Write "จำเป็นต้องดำเนินการคำสั่งคือ:<br><font color=red>" & logCmd & "</font><BR>"
logConn.Execute (logCmd)
สิ้นสุดถ้า
logConn.ปิด
ตั้งค่า logConn=ไม่มีอะไร
SaveSQLLog=msg
SQLQueryNum=SQLQueryNum+1
ฟังก์ชันสิ้นสุด
-
'ชื่อ: ExecuteCmd
'พารามิเตอร์: cmd
'ค่าที่ส่งคืน: RecordSet
'ฟังก์ชัน: คืนชุดระเบียนที่สร้างโดย cmd'
'เวลาสร้าง: 6 พฤษภาคม 2548
-
ฟังก์ชั่นสาธารณะ ExecuteCmd(cmd)
ถ้าไม่ใช่ IsObject(objConn) ดังนั้น ConnectionDataBase p_DataBase,p_dbUserID,p_dbPassword,p_dbType
หากไม่ใช่ p_Debug แสดงว่าเกิดข้อผิดพลาดดำเนินการต่อถัดไป
ลูกค้าเชื่อมต่อแล้ว
ตั้งค่า ExecuteCmd=objConn.Execute(cmd)
หากผิดพลาดแล้ว
ผิดพลาด.เคลียร์
objConn ปิด
ตั้งค่า objConn=ไม่มีอะไร
ถ้า SaveLog แล้ว
tmpMsg="พบข้อผิดพลาดขณะสืบค้นข้อมูล โปรดตรวจสอบว่าโค้ดสืบค้นของคุณถูกต้องหรือไม่<br>เพื่อความปลอดภัย จะแสดงเฉพาะข้อมูลนี้ หากต้องการดูข้อมูลข้อผิดพลาดโดยละเอียด โปรดตั้งค่า dsj.Debug=True"
การตอบสนองเขียน SaveSQLLog(cmd,tmpMsg)
อื่น
Response.Write "พบข้อผิดพลาดขณะสอบถามข้อมูล โปรดตรวจสอบว่ารหัสแบบสอบถามของคุณถูกต้องหรือไม่"
สิ้นสุดถ้า
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
SQLQueryNum=SQLQueryNum+1
ฟังก์ชันสิ้นสุด
-
'ชื่อ: HTMLEncode
'พารามิเตอร์:fString
'ค่าส่งคืน: HTMLEncode'
'ฟังก์ชัน: การเรียงพิมพ์และการแปลงเนื้อหาข้อมูล
'เวลาสร้าง: 6 พฤษภาคม 2548
-
ฟังก์ชั่นสาธารณะ HTMLEncode(fString)
หากไม่ใช่ IsNull(fString) หรือ fString<>"" จากนั้น
fString=แทนที่(fString,"<",<")
fString=แทนที่(fString,">",">")
fString=Replace(fString,Chr(9)," ") 'แบบอักษรตัวเอียง
fString=แทนที่(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=แทนที่(fString,Chr(13),"<BR>")
fString=แทนที่(fSting,vbCrlf,"<BR>")
'fString=LinkFriend(fString)
'fString=ChkBadWords(fString)
HTMLEncode=fString
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ชื่อ: ลิงค์เพื่อน'
'พารามิเตอร์:fContent
'มูลค่าที่ส่งคืน: LinkFriend
'ฟังก์ชัน: แทนที่การเชื่อมต่อที่เป็นมิตร'
'เวลาสร้าง: 6 พฤษภาคม 2548
-
ฟังก์ชั่นสาธารณะ LinkFriend(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(ซ้าย(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=fเนื้อหา
สิ้นสุดถ้า
rsFriend.ปิด
ตั้งค่า rsFriend=Nothing
SQLQueryNum=SQLQueryNum+1
ฟังก์ชันสิ้นสุด
'************************************************ * *****************
'ชื่อ: ShowPage
'พารามิเตอร์: NULL
'ค่าส่งคืน: NULL'
'ฟังก์ชั่น: แสดงการนำทางบันทึกเพจ
'อธิบาย:
'งานต้นฉบับ: zykj2000 เว็บไซต์: http://bbs.513soft.net
' การปรับเปลี่ยน: เว็บไซต์ Alonesword: http://blog.csdn.net/alonesword/
เวลา: 7 พฤษภาคม 2548
'************************************************ * ****************
ShowPage ย่อยสาธารณะ()
หรี่แสง str_tmp
p_intTotalRecords=rsDivPage.RecordCount
ถ้า p_intTotalRecords<=0 แล้ว
p_Error=p_Error & "จำนวนบันทึกทั้งหมดเป็นศูนย์ โปรดป้อนข้อมูล"
โทรแสดงข้อผิดพลาด()
สิ้นสุดถ้า
ถ้า p_intTotalRecords <=PageSize THen
p_intTotalPage=1
อื่น
ถ้า p_intTotalRecords mod PageSize =0 แล้ว
p_intTotalPage = CLng(p_intTotalRecords / ขนาดหน้า * -1)*-1
อื่น
p_intTotalPage = CLng(p_intTotalRecords / ขนาดหน้า * -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='Page 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()
หรี่ i,str_tmp
Dim PageLink
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> "
ตอบกลับเขียน PageLink
ต่อไป
showNumBtn=str_tmp
ฟังก์ชันสิ้นสุด
ฟังก์ชันส่วนตัว ShowPageInfo()
หรี่แสง str_tmp
str_tmp="Page:"&p_intCurPage&"/"&p_intTotalPage&"ผลรวมของหน้า"&p_intTotalRecords&"records"&p_rsPageSize&"บันทึก/ต่อหน้า"
ShowPageInfo=str_tmp
ฟังก์ชันสิ้นสุด
ฟังก์ชันส่วนตัว AddnPageURL()
หรี่ 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
ถ้า j=-1 แล้ว
result_url=ScriptName & "?page="
อื่น
str_params=ซ้าย(str_params,j)
result_url=ScriptName & "?" & str_params &"&page ="
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
AddnPageURL=result_url
ฟังก์ชันสิ้นสุด
'************************************************ * ****************
ฟังก์ชั่นสาธารณะ GetName (ตัวเลือก)
Dim tmpName
tmpName=Request.ServerVariables("PATH_INFO")
arrTmpName=แยก(tmpName,"/")
ถ้า Options=0 ดังนั้น GetName=Server.Mappath(".")&GetName(1)
ถ้าตัวเลือก = 1 แล้ว GetName = LCase (arrTmpName (UBound (arrTmpName)))
ถ้า Options=2 ให้ GetName=LCase(arrTmpName(UBound(arrTmpName)-1))&"/"
ฟังก์ชันสิ้นสุด
จบคลาส
-