一個比較使用的ASP函數集合類
最近迷戀上作網站了,使用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
?Private?p_Error,p_IpAdd,p_Debug,Errs
?Private?p_InvaildWords
?Private?tmpStr
?Private?objConnDivPage,rsDivPage,p_GetSQL,p_nPage
?Private?p_rsPageSize,p_intCurPage,p_strURL,p_intTotalPage,p_intTotalRecords
?Private?p_dbType,p_dbFolder,p_DataBase,dbPath,p_dbUserID,p_dbPassword,p_sqlDataSource
?Private?param_DataBase,param_dbUserID,param_dbPassword,param_dbType
?'Property?
?Public?objConn,ConnStr,SQLQueryNum
?Public?logDB,WebURL
?Public?SaveLog
?Public?ErrCodes,ErrCode,ErrMsg
?Public?ScriptFolder,ScriptName
?
?Private?Sub?Class_Initialize
??p_Debug=True
??ClientConnected
??SaveLog=True
??ErrMsg=""
??p_Error=0
??SQLQueryNum=0
??Rem??數據庫連接初始化
??dbType=12??'取1x——Access,2x——SQL;x1——OLEDB,x2——ODBC
??dbFolder="Data"?
??DataBase="zhubizidatabase.MDB"
??dbUserID=""
??dbPassword=""
??sqlDataSource=""
??p_rsPageSize=10?
??'p_nPage=2?
??If?request("page")=""?Then
???p_intCurPage=1
??ElseIf?NOT?IsNumeric(request("page"))?Then
???p_intCurPage=1
??ElseIf?CInt(Trim(request("page")))<1?Then
???p_intCurPage=1
??Else
???p_intCurPage=CInt(Trim(request("page")))
??End?If
??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="select|update|delete|insert|@|--|;|'|#|%|xp|cmd|shell"
?End?Sub
?
?Private?Sub?Class_terminate()
??If?IsObject(rsDivPage)?Then?rsDivPage.Close:Set?rsDivPage=Nothing
??If?IsObject(objConn)?Then?objConn.Close:Set?objConn=Nothing
?End?Sub

?Public?Property?Get?Version
??Version="DSJ?1.1.0?Beta"
?End?Property
?
?Public?Property?Get?Error
??Error=p_Error
?End?Property
?
?Public?Property?Get?Debug
??Debug=p_Debug
?End?Property
?Public?Property?Let?Debug(BoolDebug)
??If?BoolDebug?Then
???p_Debug=True
??Else
???p_Debug=False
??End?If
?End?Property
?
?Public?Property?Get?dbType
??dbType=p_dbType
?End?Property
?Public?Property?Let?dbType(lngdbType)
??If?IsNumeric(lngdbType)?Then
???p_dbType=lngdbType
??Else
???p_dbType=12
??End?If
?End?Property
?
?Public?Property?Get?dbFolder
??dbFolder=p_dbFolder
?End?Property
?Public?Property?Let?dbFolder(strFolder)
??If?Right(strFolder,1)="\"?OR?Right(strFolder,1)="/"?Then
???p_dbFolder=strFolder
??Else
???If?(NOT?IsNull(strFolder))?OR?(strFolder<>"")?Then?
????p_dbFolder=strFolder?&?"\"
???Else
????p_dbFoler=""
???End?If
??End?If
?End?Property
?
?Public?Property?Get?Database
??Database=p_dataBase
?End?Property
?Public?Property?Let?Database(strDataBase)
??p_dataBase=strDatabase
?End?Property
?
?Public?Property?Get?dbUserID
??dbUserID=p_dbUserID
?End?Property
?Public?Property?Let?dbUserID(strDataBaseUserID)
??p_dbUserID=strDataBaseUserID
?End?Property
?
?Public?Property?Get?dbPassword
??dbPassword=p_dbPassword
?End?Property
?Public?Property?Let?dbPassword(strDataBasePassword)
??p_dbPassword=strDataBasePassword
?End?Property
?
?Public?Property?Get?SQLDataSource
??SQLDataSource=p_sqlDataSource
?End?Property
?Public?Property?Let?SQLDataSource(strSQLDataSource)
??If?strsqlDataSource<>""?Then
???If?Left(p_dbType,1)=2?Then
????p_sqlDataSource=strSQLDataSource
???Else
????AddErrorCode(110)
????p_sqlDataSource=""
???End?If
??End?If
?End?Property
?
?Public?Property?Let?PageSize(int_PageSize)
??If?IsNumeric(Int_Pagesize)?Then
???p_rsPageSize=CLng(int_PageSize)
??End?If
?End?Property
?Public?Property?Get?PageSize
??If?p_rsPageSize=""?or?NOT?IsNumeric(p_rsPageSize)?Then
???PageSize=8?????
??Else
???PageSize=p_rsPageSize
??End?If
?End?Property

?Public?Property?Get?GetRs()
??If?NOT?Debug?Then?On?Error?Resume?Next
??If?NOT?IsObject(objConn)?Then?ConnectionDataBase?dbDataBase,dbUserID,dbPassword,dbType
??If?NOT?IsObject(rsDivPage)?Then
???Set?rsDivPage=Server.createobject("adodb.recordset")
???rsDivPage.Open?GetSQL,objConn,1,1
???rsDivPage.PageSize=PageSize
???If?not(rsDivPage.eof?and?rsDivPage.BOF)?Then
????If?p_intCurPage>rsDivPage.PageCount?Then
?????p_intCurPage=rsDivPage.PageCount
????End?If
????rsDivPage.AbsolutePage=p_intCurPage
???End?If
???If?Err?Then
????Err.Clear
????rsDivPage.Close
????Set?rsDivPage=Nothing
????If?SaveLog?Then
?????tmpMsg="連接數據庫錯誤,請檢查您的查詢代碼是否正確。<br>基于安全的理由,只顯示本信息,要查看詳細的錯誤信息,請設置dsj.Debug=True"
?????Response.Write?SaveSQLLog(cmd,tmpMsg)
????Else
?????Response.Write?"連接數據庫錯誤,請檢查您的查詢代碼是否正確。"
????End?If
????Response.End()
???End?If
???SQLQueryNum=SQLQueryNum+1
???Set?GetRs=rsDivPage
??End?If
?End?Property
?
?Public?Property?Let?GetSQL(str_sql)
??If?str_sql<>""?Then?
???p_GetSQL=str_sql
??Else
???AddErrorCode(111)
???If?Debug?Then?ShowErrMsg()
???p_GetSQL="The?Property?of?GetSQL?is?NULL."
??End?If
?End?Property
?Public?Property?Get?GetSQl()
??GetSQL=p_GetSQL
?End?Property


?'******************************
?'名稱:?gotTopic
?'參數:str,strlen
?'返回值:被限制后的字符串
?'創建時間:2005年3月3日
?'作用:限制被限制的字符串
?'******************************
?Public?Function?GotToPic(str,strlen)
??Rem?限制字符串顯示長度在一定的范圍內
??Dim?i,StringLen,CharSize,EchoCharType
??StringLen=len(str)
??CharSize=0
??For?i=1?to?StringLen
???EchoCharType=Abs(Asc(Mid(str,i,1)))
???If?EchoCharType>255?Then
????CharSize=CharSize+2
???Else
????CharSize=CharSize+1
???End?If
???If?CharSize>strlen?Then
????gotTopic=Left(str,i)?&?" "
????Exit?For
???Else
????gotTopic=str?&?""
???End?If
??Next
?End?Function
?
?'******************************
?'名稱:?ChkInvStr
?'參數:Str
?'返回值:True/False
?'創建時間:2005年5月2日
?'作用:檢查參數是否有非法字符
?'******************************
?Public?Function?ChkInvStr(Str)?
??Rem?定義需要過濾得非法字符
??Dim?InvaildWord,inWords,i
??Str=CStr(Str)
??ChkInvStr=False
??If?Len(Replace(p_InvaildWords,Chr(0),""))<1?Then
???AddErrorCode(103)?'invaildwords?is?null
???Exit?Function
??Else
???If?Instr(1,p_Invaildwords,"|")>0?Then
????InvaildWord=Split(p_InvaildWords,"|")
????inWords=LCase(Trim(Str))
????For?i=LBound(InvaildWord)?To?UBound(InvaildWord)
?????If?Instr(inWords,InvaildWord(i))>0?Then
??????p_Error=1982
??????AddErrorCode(105)
??????ChkInvStr=True
??????Exit?Function
?????End?If
????Next?
???Else
????AddErrorCode(104)?'"|"?is?requried.
????Exit?Function
???End?If?
??End?If
?End?Function
?
?'******************************
?'名稱:?GetIP
?'參數:NULL
?'返回值:NULL
?'創建時間:2005年5月3日
?'作用:得到用戶的ip地址
?'******************************
?Public?Function?GetIP()
??p_IpAdd=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
??If?IsNull(p_IpAdd)?OR?p_IpAdd=""?Then
???p_IpAdd=Request.ServerVariables("REMOTE_ADDR")
??End?If
??GetIp=p_IpAdd
?End?Function
?
?'******************************
?'名稱:?IPAddress
?'參數:sip
?'返回值:County,City
?'作用:對數據內容進行排版轉換
?'創建時間:2005年5月6日
?'來源:動網
?'******************************
?Public?Function?IPAddress(sip)
??Dim?IPConnStr,IPConn,IPAddressDB
??Dim?str1,str2,str3,str4
??Dim??num
??Dim?country,city,address
??Dim?IPRs,SQL
??address="未知"
??If?IsNumeric(Left(sip,2))?Then
???If?sip="127.0.0.1"?Then?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=Left(sip,instr(sip,".")-1)
???str4=Mid(sip,instr(sip,".")+1)
???If?isNumeric(str1)=0?or?isNumeric(str2)=0?or?isNumeric(str3)=0?or?isNumeric(str4)=0?Then
???Else??
????num=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
????IPAddressDB?=?"DSJ_Ipaddress.mdb"
????IPConnStr?=?"Provider?=?Microsoft.Jet.OLEDB.4.0;Data?Source?=?"?&?Server.MapPath(p_dbFolder?&?IPAddressDB)
????Set?IPConn?=?Server.CreateObject("ADODB.Connection")
????IPConn.Open?IpConnStr
????country="亞洲"
????city=""
????sql="select?top?1?country,city?from?DSJ_IPAddress?where?ip1?<="&num&"?and?ip2?>="&num&""
????Set?IPRs=IPConn.execute(sql)
????If?Not(IPRs.EOF?And?IPRs.bof)?Then
?????country=IPRs(0)
?????city=IPRs(1)
????End?If
????IpRs.Close:Set?IPRs=Nothing
????IPConn.CLose:Set?IPConn?=?Nothing?
????SqlQueryNum?=?SqlQueryNum+1
???End?If
???IPAddress=country&city
??End?If
?End?Function
?
?'******************************
?'名稱:?ClientConnected
?'參數:NULL
?'返回值:NULL
?'創建時間:2005年5月5日
?'作用:得到用戶是否與服務器連接
?'******************************
?Public?Sub?ClientConnected()
??If?Response.IsClientConnected?then?
???Response.Flush()
??Else
???Response.End()?
??End?If
?End?Sub
?
?'******************************
?'名稱:?ChkPost
?'參數:NULL
?'返回值:True/False
?'創建時間:2005年5月5日
?'作用:檢查被提交的數據來源
?'******************************
?Public?Function?ChkPost()
??Dim?Server_v1,Server_v2
??ChkPost=False
??Server_v1=CStr(Request.ServerVariables("HTTP_REFERER"))
??Server_v2=CStr(Request.ServerVariables("SERVER_NAME"))
??If?Mid(Server_v1,8,Len(Server_v2))=Server_v2?Then?ChkPost=True
?End?Function
?
?'******************************
?'名稱:?AddErrorCode
?'參數:ErrCode
?'返回值:ErrCodes
?'創建時間:2005年5月3日
?'作用:添加錯誤代碼到ErrCodes中
?'******************************
?Public?Sub?AddErrorCode(ErrCode)
??If?ErrCodes=""?Then
???ErrCodes=ErrCode
??Else
???ErrCodes=ErrCodes?&?","?&?ErrCode
??End?If
?End?Sub
?
?'******************************
?'名稱:?ShowErrMsg
?'參數:NULL
?'返回值:NULL
?'創建時間:2005年5月3日
?'作用:顯示詳細的錯誤信息
?'******************************
?Public?Function?ShowErrMsg()
??If?NOT?p_Debug?Then?On?Error?Resume?Next
??If?ErrCodes<>""?Then
???iErrCodes=Split(ErrCodes,",",-1,Binary)
???For?i=LBound(iErrCodes)?To?UBound(iErrCodes)
????tmpErrCode=CLng(iErrCodes(i))
????If?IsNumeric(tmpErrCode)?Then
?????ErrMsg=ErrMsg?&?ErrDetails(tmpErrCode)
????End?If
???Next
??End?If
??ShowErrMsg=ErrMsg
?End?Function
?
?'******************************
?'名稱:?ConnectionDataBase
?'參數:DataBase,p_dbUserID,p_dbPassword,p_dbType
?'返回值:NULL
?'作用:連接到數據庫
?'創建時間:2005年5月6日
?'******************************
?Public?Function?ConnectionDataBase(param_DataBase,param_dbUserID,param_dbPassword,param_dbType)
??If?Not?p_Debug?Then?On?Error?Resume?Next
??ClientConnected
??If?IsNumeric(param_dbType)?Then
???Set?objConn=Server.CreateObject("ADODB.Connection")
???objConn.ConnectionTimeOut=10?'設置連接超時為10秒
???dbPath=Server.MapPath(p_dbFolder¶m_DataBase)
???'Response.Write?dbPath
???Select?Case?param_dbType
????Case?11:??'Access?Data?Base(OLEDB)
?????ConnStr="Provider=Microsoft.Jet.Oledb.4.0;Data?Source="&dbPath&";User?ID="¶m_dbUserID&";Password="¶m_dbPassword&""
????Case?21:??'SQL?Server?(OLEDB)
?????ConnStr="Provider=SQLOLEDB;Initial?Catalog="¶m_DataBase&";Data?Source="&p_sqlDataSource&";User?ID="¶m_dbUserID&";Password="¶m_dbPassword&""
????Case?12:??'Access?Data?Base(ODBC)
?????ConnStr="Driver={Microsoft?Access?Driver?(*.mdb)};DBQ="&dbPath&";User?ID="¶m_dbUserID&";Password="¶m_dbPassword
????Case?22:??'SQL?Server?(ODBC)
?????ConnStr="Driver={SQL?Server};DataBase="¶m_DataBase&";Server="&p_sqlDataSource&";User?ID="¶m_dbUserID&";Password="¶m_dbPassword&""
????Case?Else:
?????AddErrorCode(100)
?????If?p_Debug?Then?Response.Write?ShowErrMsg()
?????'Exit?Function
???End?Select
???objConn.ConnectionString=ConnStr
???objConn.Open
???Set?ConnectionDataBase=objConn
???If?Err?Then
????Err.Clear
????
????If?SaveLog?Then
?????tmpMsg="數據庫連接時出現錯誤,請檢查您的查詢代碼是否正確。<br>基于安全的理由,只顯示本信息,要查看詳細的錯誤信息,請設置dsj.Debug=True"
?????cmd="Execute?the?command?of?:"¶m_dbtype
?????Response.Write?SaveSQLLog(cmd,tmpMsg)
????Else
?????Response.Write?"數據庫連接時出現錯誤,請檢查您的查詢代碼是否正確。"
????End?If
????AddErrorCode(101)
????Set?objConn=Nothing
????Response.End()
???End?If
??End?If
?End?Function
?
?'******************************
?'名稱:?SaveSQLLog
?'參數:sCommand,Msg
?'返回值:msg
?'作用:存儲日志
?'創建時間:2005年5月6日
?'******************************
?Public?Function?SaveSQLLog(sCommand,Msg)
??If?Not?p_Debug?Then?On?Error?Resume?Next
??logDB="DSJ_SQLLog.mdb"
??'ConnectionDataBase?logDB,p_dbUserID,p_dbPassword,12
??logConnStr?=?"Provider?=?Microsoft.Jet.OLEDB.4.0;Data?Source?=?"?&?Server.MapPath(p_dbFolder?&?logDB)
??Set?logConn?=?Server.CreateObject("ADODB.Connection")
??logConn.Open?logConnStr
??If?SaveLog?Then
???Dim?logCmd
???logCmd="INSERT?INTO?DSJ_SQL_Log?(Command,ScriptName,logUser,IP)?VALUES?"
???logCmd=logCmd?&?"('"?&?Replace(Left(sCommand,255),"'","''")?&"','"?&?(ScriptFolder?&?ScriptName)?&"','"?&?Session("User")?&?"','"&?GetIP?&?"')"
???'Response.Write?"Need?to?execute?command?is:<br><font?color=red>"?&?logCmd?&?"</font><BR>"
???logConn.Execute(logCmd)
??End?If
??logConn.Close
??Set?logConn=Nothing
??SaveSQLLog=msg
??SQLQueryNum=SQLQueryNum+1
?End?Function
?
?'******************************
?'名稱:?ExecuteCmd
?'參數:cmd
?'返回值:RecordSet
?'作用:返回由cmd創建的記錄集
?'創建時間:2005年5月6日
?'******************************
?Public?Function?ExecuteCmd(cmd)
??If?NOT?IsObject(objConn)?Then?ConnectionDataBase?p_DataBase,p_dbUserID,p_dbPassword,p_dbType
??If?NOT?p_Debug?Then?On?Error?Resume?Next
??ClientConnected
??Set?ExecuteCmd=objConn.Execute(cmd)
??If?Err?Then
???Err.Clear
???objConn.Close
???Set?objConn=Nothing
???If?SaveLog?Then
????tmpMsg="查詢數據的時候發現錯誤,請檢查您的查詢代碼是否正確。<br>基于安全的理由,只顯示本信息,要查看詳細的錯誤信息,請設置dsj.Debug=True"
????Response.Write?SaveSQLLog(cmd,tmpMsg)
???Else
????Response.Write?"查詢數據的時候發現錯誤,請檢查您的查詢代碼是否正確。"
???End?If
???Response.End()
??End?If
??SQLQueryNum=SQLQueryNum+1
?End?Function
?
?'******************************
?'名稱:?HTMLEncode
?'參數:fString
?'返回值:HTMLEncode
?'作用:對數據內容進行排版轉換
?'創建時間:2005年5月6日
?'******************************
?Public?Function?HTMLEncode(fString)
??If?Not?IsNull(fString)?Or?fString<>""?Then
???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
??End?If
?End?Function
?
?'******************************
?'名稱:?LinkFriend
?'參數:fContent
?'返回值:LinkFriend
?'作用:進行友情連接替換
?'創建時間:2005年5月6日
?'******************************
?Public?Function?LinkFriend(fContent)
??If?NOT?p_Debug?Then?On?Error?Resume?Next
??If?NOT?IsObject(objConn)?Then?ConnectionDataBase?DataBase,dbUserID,dbPassword,dbType
??Set?rsFriend=ExecuteCmd("Select?Title,URL?From?dsj_FriendLink")
??If?rsFriend.Eof?And?rsFriend.Bof?Then?
??Else
???Do?While?NOT?rsFriend.Eof?
????strTitle=rsFriend.Fields.Item("Title")
????URl=rsFriend.Fields.Item("URL")
????If?LCase(Left(URL,1))<>"h"?Then?URL=Replace(URl,Left(URL,1),"")
????strLink="<a?target='_blank'?title='"?&?strTitle?&"'?href='"?&?URL?&?"'>"
????strLink=strLink&strTitle&"</a>"
????If?Instr(fContent,strTitle)>0?Then?fContent=Replace(fContent,strTitle,strLink)
????rsFriend.MoveNext
???Loop
???LinkFriend=fContent
??End?If
??rsFriend.Close
??Set?rsFriend=Nothing
??SQLQueryNum=SQLQueryNum+1
?End?Function
?
?'******************************************************************************************
?'名稱:?ShowPage
?'參數:NULL
?'返回值:NULL
?'作用:顯示經過分頁后的記錄導航
?'說明:
?'?原作:zykj2000??網站:http://bbs.513soft.net
?'?修改:孤劍??網站:http://blog.csdn.net/alonesword/
?'時間:2005年5月7日
?'******************************************************************************************
?Public?Sub?ShowPage()
??Dim?str_tmp
??p_intTotalRecords=rsDivPage.RecordCount
??If?p_intTotalRecords<=0?Then
???p_Error=p_Error?&?"總記錄數為零,請輸入數據"
???Call?ShowError()
??End?If
??If?p_intTotalRecords?<=PageSize?THen?
???p_intTotalPage=1
??Else
???If?p_intTotalRecords?mod?PageSize?=0?Then
????p_intTotalPage?=?CLng(p_intTotalRecords?/?PageSize?*?-1)*-1
???Else
????p_intTotalPage?=?CLng(p_intTotalRecords?/?PageSize?*?-1)*-1+1
???End?If
??End?If
??If?p_intCurPage>p_intTotalPage?Then
???p_intCurPage=p_intTotalPage
??End?If
??Response.Write?ShowFirstPrv
??showNumBtn
??Response.Write?ShowNextLast&"?"
??Response.Write?ShowPageInfo
??response.write?str_tmp
?End?Sub

?Private?Function?ShowFirstPrv()
??Dim?Str_tmp,int_prvpage
??int_prvpage=p_intCurPage-1
??If?int_prvpage<1?Then?int_prvpage=1
??Btn_FirstLink="<a?title='第1頁'?href='"&AddnPageURL&"1'>"&Btn_First
??Btn_PrevLink="<a?title='第"&int_prvpage&"頁'?href='"&AddnPageURL&p_intCurPage-1&"'>"&Btn_Prev
??If?p_intCurPage=1?Then
???str_tmp=Btn_FirstLink&"</a>?"&Btn_PrevLink&"</a>?"
??Else
???int_prvpage=p_intCurPage-1
???str_tmp=""&Btn_FirstLink&"</a>?"&?Btn_PrevLink&"</a>?"
??End?If
??ShowFirstPrv=str_tmp
?End?Function

?Private?Function?ShowNextLast()
??Dim?str_tmp,int_Nextpage
??int_NextPage=p_intCurPage+1
??If?p_intCurPage+1>p_intTotalPage?Then?int_NextPage=p_intTotalPage
??Btn_NextLink="<a?title='第"&int_NextPage&"頁'?href='"&AddnPageURL&p_intCurPage+1&"'>"&Btn_Next
??Btn_LastLink="<a?title='第"&p_intTotalPage&"頁'?href='"&AddnPageURL&p_intTotalPage&"'>"&Btn_Last
??If?p_intCurPage>=p_intTotalPage?Then
???str_tmp=Btn_NextLink?&?"</a>?"?&?Btn_LastLink&"</a>"
??Else
???Int_NextPage=p_intCurPage+1
???str_tmp=""&Btn_NextLink&"</a>?"&?Btn_LastLink&"</a>"
??End?If
??ShowNextLast=str_tmp
?End?Function

?Private?Function?showNumBtn()
??Dim?i,str_tmp
??Dim?PageLink
??str_tmp=""
??For?i=1?to?p_intTotalPage?Step?1
???PageLink=" <a?title='第"&i&"頁'?href='"&AddnPageURL&i&"'>"&i&"</a> "
???If?i=p_intCurPage?Then?PageLink="?<a?title='第"&i&"頁'?href='"&AddnPageURL&i&"'><font?color=red>"&i&"</font></a>?"
???Response.Write?PageLink
??Next?
??showNumBtn=str_tmp
?End?Function

?Private?Function?ShowPageInfo()
??Dim?str_tmp
??str_tmp="頁次:"&p_intCurPage&"/"&p_intTotalPage&"頁?共"&p_intTotalRecords&"條記錄?"&p_rsPageSize&"條/每頁"
??ShowPageInfo=str_tmp
?End?Function

?Private?Function?AddnPageURL()
??Dim?i,j,search_str,result_url
??search_str="page="
??str_params=Request.ServerVariables("QUERY_STRING")
??If?str_params=""?Then
???result_url=ScriptName?&?"?page="
??Else
???If?InstrRev(str_params,search_str)=0?Then
????result_url=ScriptName?&?"?"?&?str_params?&"&page="
???Else
????j=InstrRev(str_params,search_str)-2
????If?j=-1?Then
?????result_url=ScriptName?&?"?page="
????Else
?????str_params=Left(str_params,j)
?????result_url=ScriptName?&?"?"?&?str_params?&"&page="
????End?If
???End?If
??End?If
??AddnPageURL=result_url
?End?Function
?'******************************************************************************************
?
?Public?Function?GetName(Options)
??Dim?tmpName
??tmpName=Request.ServerVariables("PATH_INFO")
??arrTmpName=Split(tmpName,"/")
??If?Options=0?Then?GetName=Server.Mappath(".")&GetName(1)
??If?Options=1?Then?GetName=LCase(arrTmpName(UBound(arrTmpName)))
??If?Options=2?Then?GetName=LCase(arrTmpName(UBound(arrTmpName)-1))&"/"
?End?Function
?
End?Class
%>


|
|
|
導航
統計
- 隨筆: 115
- 文章: 1
- 評論: 86
- 引用: 0
常用鏈接
留言簿(5)
隨筆檔案(115)
網址
搜索
積分與排名
最新評論

閱讀排行榜
評論排行榜
|
|