В последнее время я стал одержим созданием веб-сайтов. Я использовал 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>" 'Определить стиль отображения кнопки последней страницы.
Класс 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
Публичный журнал сохранений
Публичные коды ошибок, ErrCode, ErrMsg
Публичная папка сценариев, Имя сценария
Частный подкласс_инициализировать
p_Debug=Истина
КлиентПодключен
SaveLog=Истина
Эррмсг=""
p_Error=0
SQLQueryNum=0
Инициализация подключения к базе данных Rem
dbType=12 'Возьмем 1x——Access, 2x——SQL x1——OLEDB, x2——ODBC;
dbFolder="Данные"
База данных="zhubizidatabase.MDB"
дбУсерИД=""
дбпассворд=""
sqlDataSource=""
p_rsPageSize=10
'p_nPage=2
Если запрос("страница")="" Тогда
p_intCurPage=1
ИначеЕсли НЕ IsNumeric(request("страница")) Тогда
p_intCurPage=1
ElseIf CInt(Trim(request("page")))<1 Тогда
p_intCurPage=1
Еще
p_intCurPage=CInt(Trim(запрос("страница")))
Конец, если
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 "
Конец субтитра
Частный подкласс_terminate()
Если IsObject(rsDivPage) Тогда rsDivPage.Close:Set rsDivPage=Ничего
Если IsObject(objConn) Тогда objConn.Close:Set objConn=Ничего
Завершить
общедоступную собственность Sub Sub. Получить версию
Версия="DSJ 1.1.0 Бета"
Конечная собственность
Ошибка получения публичной собственности
Ошибка=p_Error
Конечная собственность
Публичная собственность: получение отладки
Отладка = p_Debug
Конечная собственность
Открытая собственность Let Debug(BoolDebug)
Если BoolDebug Тогда
p_Debug=Истина
Еще
p_Debug = Ложь
Конец, если
Конечная собственность
Открытая собственность Получить dbType
dbType=p_dbType
Конечная собственность
Открытое свойство Let dbType(lngdbType)
Если IsNumeric(lngdbType) Тогда
p_dbType=lngdbType
Еще
p_dbType=12
Конец, если
Конечная собственность
Открытая собственность Получить dbFolder
dbFolder=p_dbFolder
Конечная собственность
Открытая собственность Let dbFolder(strFolder)
Если Right(strFolder,1)="" ИЛИ Right(strFolder,1)="/" Тогда
p_dbFolder=strFolder
Еще
Если (НЕ IsNull(strFolder)) ИЛИ (strFolder<>"") Тогда
p_dbFolder=strFolder & ""
Еще
p_dbFoler=""
Конец, если
Конец, если
Конечная собственность
Публичная собственность Получить базу данных
База данных=p_dataBase
Конечная собственность
База данных общедоступных свойств Let (strDataBase)
p_dataBase=strDatabase
Конечная собственность
Открытая собственность Получить dbUserID
dbUserID=p_dbUserID
Конечная собственность
Открытое свойство Let dbUserID(strDataBaseUserID)
p_dbUserID=strDataBaseUserID
Конечная собственность
Открытая собственность Получить dbPassword
dbPassword=p_dbPassword
Конечная собственность
Открытое свойство Let dbPassword(strDataBasePassword)
p_dbPassword=strDataBasePassword
Конечная собственность
Открытая собственность: получение SQLDataSource
SQLDataSource=p_sqlDataSource
Конечная собственность
Открытое свойство Let SQLDataSource(strSQLDataSource)
Если strsqlDataSource<>"" Тогда
Если Left(p_dbType,1)=2 Тогда
p_sqlDataSource=strSQLDataSource
Еще
Добавитькод_ошибки(110)
p_sqlDataSource=""
Конец, если
Конец, если
Конечная собственность
Открытое свойство Let PageSize(int_PageSize)
Если IsNumeric(Int_Pagesize) Тогда
p_rsPageSize=CLng(int_PageSize)
Конец, если
Конечная собственность
Публичная собственность Получить размер страницы
Если p_rsPageSize="" или НЕ IsNumeric(p_rsPageSize) Тогда
Размер страницы=8
Еще
PageSize=p_rsPageSize
Конец, если
конечного свойства
Get 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.Close
Установить rsDivPage=Ничего
Если сохранить журнал, то
tmpMsg="Ошибка подключения к базе данных. Проверьте правильность кода запроса.<br>В целях безопасности отображается только это сообщение. Чтобы просмотреть подробные сообщения об ошибках, установите dsj.Debug=True"
Response.Write SaveSQLLog(cmd,tmpMsg)
Еще
Response.Write «Ошибка подключения к базе данных. Проверьте правильность кода запроса».
Конец, если
Ответ.Конец()
Конец, если
SQLQueryNum=SQLQueryNum+1
Установите GetRs=rsDivPage
Конец, если
Конечная собственность
Открытая собственность Let GetSQL(str_sql)
Если str_sql<>"" Тогда
p_GetSQL=str_sql
Еще
Добавитькод_ошибки(111)
Если отладка, то ShowErrMsg()
p_GetSQL="Свойство GetSQL равно NULL."
Конец, если
Конечная собственность
Открытая собственность: GetSQl()
GetSQL=p_GetSQL
Конечная собственность
'******************************
'Имя: gotTopic
'Параметры: ул, стрлен
'Возвращаемое значение: ограниченная строка
'Время создания: 3 марта 2005 г.
'Функция: ограничить ограниченную строку
'******************************
Открытая функция GotToPic(str,strlen)
Rem ограничивает длину отображаемой строки определенным диапазоном.
Dim i, StringLen, CharSize, EchoCharType
StringLen=len(str)
Размер символов=0
Для i=1 до StringLen
EchoCharType=Abs(Asc(Mid(str,i,1)))
Если EchoCharType>255 Тогда
CharSize=CharSize+2
Еще
CharSize=CharSize+1
Конец, если
Если CharSize>strlen Тогда
gotTopic=Left(str,i) & "..."
Выход для
Еще
gotTopic=str & ""
Конец, если
Следующий
Конечная функция
'******************************
'Имя: ChkInvStr
'Параметр: Str
'Возвращаемое значение: Истина/Ложь
'Время создания: 2 мая 2005 г.
'Функция: проверка наличия в параметрах недопустимых символов.
'******************************
Открытая функция ChkInvStr(Str)
Rem определяет недопустимые символы, которые необходимо фильтровать.
Тусклый InvaildWord,inWords,i
Стр=CStr(Str)
ChkInvStr=Ложь
Если Len(Replace(p_InvaildWords,Chr(0),""))<1 Тогда
AddErrorCode(103) 'invaildwords имеет значение null
Выход из функции
Еще
Если 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=Истина
Выход из функции
Конец, если
Следующий
Еще
AddErrorCode(104) '"|" является обязательным.
Выход из функции
Конец, если
Конец, если
Конечная функция
'******************************
'Имя: GetIP
'Параметр: NULL
'Возвращаемое значение: NULL
'Время создания: 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.
'******************************
Открытая функция IPAddress(sip)
Тусклый IPConnStr,IPConn,IPAddressDB
Тусклый str1,str2,str3,str4
Тусклый номер
Тусклая страна, город, адрес
Тусклые права интеллектуальной собственности, SQL
адрес="неизвестно"
Если IsNumeric(Left(sip,2)) Тогда
Если sip="127.0.0.1" Тогда sip="192.168.0.1"
str1=Влево(глоток,InStr(глоток,".")-1)
sip=mid(sip,instr(sip,".")+1)
str2=Влево(глоток,инстр(глоток,".")-1)
sip=Mid(sip,InStr(sip,".")+1)
str3=Влево(глоток,инстр(глоток,".")-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.Open 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
Конец, если
IP-адрес=страна и город
Конец, если
Конечная функция
'******************************
'Имя: ClientConnected
'Параметр: NULL
'Возвращаемое значение: NULL
'Время создания: 5 мая 2005 г.
'Функция: узнать, подключен ли пользователь к серверу
'******************************
Публичный субклиентConnected()
Если Response.IsClientConnected, то
Ответ.Flush()
Еще
Ответ.Конец()
Конец, если
Конец субтитра
'******************************
'Имя: ChkPost
'Параметр: NULL
'Возвращаемое значение: Истина/Ложь
'Время создания: 5 мая 2005 г.
'Функция: Проверка источника отправленных данных
'******************************
Открытая функция ChkPost()
Тусклый Сервер_v1,Сервер_v2
ChkPost=False
Server_v1=CStr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=CStr(Request.ServerVariables("ИМЯ_СЕРВЕРА"))
Если Mid(Server_v1,8,Len(Server_v2))=Server_v2 Тогда ChkPost=True
Конечная функция
'******************************
'Имя: AddErrorCode
'Параметр: ErrCode
'Возвращаемое значение: ErrCodes
'Время создания: 3 мая 2005 г.
'Функция: добавить коды ошибок в ErrCodes
'******************************
Публичная подпрограмма AddErrorCode(ErrCode)
Если ErrCodes="" Тогда
ErrCodes=Код ошибки
Еще
ErrCodes=Коды ошибки & "," & Код ошибки
Конец, если
Конец субтитра
'******************************
'Имя: ШоуЭррмсг
'Параметр: NULL
'Возвращаемое значение: NULL
'Время создания: 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
Конечная функция
'******************************
'Имя: ConnectionDataBase
'Параметры:DataBase,p_dbUserID,p_dbPassword,p_dbType
'Возвращаемое значение: NULL
'Функция: подключение к базе данных
'Время создания: 6 мая 2005 г.
'******************************
Открытая функция ConnectionDataBase(param_DataBase,param_dbUserID,param_dbPassword,param_dbType)
Если не p_Debug, то при ошибке возобновить далее
КлиентПодключен
Если IsNumeric(param_dbType) Тогда
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionTimeOut=10 'Установить время ожидания соединения на 10 секунд
dbPath=Server.MapPath(p_dbFolder¶m_DataBase)
'Response.Write dbPath
Выберите регистр param_dbType
Случай 11: «Доступ к базе данных (OLEDB)»
ConnStr="Provider=Microsoft.Jet.Oledb.4.0;Источник данных="&dbPath&";Идентификатор пользователя="¶m_dbUserID&";Пароль="¶m_dbPassword&""
Случай 21: SQL-сервер (OLEDB)
ConnStr="Provider=SQLOLEDB;Исходный каталог="¶m_DataBase&";Источник данных="&p_sqlDataSource&";Идентификатор пользователя="¶m_dbUserID&";Пароль="¶m_dbPassword&""
Случай 12: «База данных доступа (ODBC)»
ConnStr="Driver={Microsoft Access Driver (*.mdb)};DBQ="&dbPath&";User ID="¶m_dbUserID&";Password="¶m_dbPassword
Случай 22: SQL-сервер (ODBC)
ConnStr="Driver={SQL Server};DataBase="¶m_DataBase&";Server="&p_sqlDataSource&";User ID="¶m_dbUserID&";Password="¶m_dbPassword&""
Другой случай:
AddErrorCode(100)
Если p_Debug, то Response.Write ShowErrMsg()
'Выход из функции
Конец выбора
objConn.ConnectionString=ConnStr
objConn.Open
Установите ConnectionDataBase=objConn
Если Ошибка Тогда
Ошиб.Очистить
Если сохранить журнал, то
tmpMsg="Произошла ошибка при подключении к базе данных. Проверьте правильность кода запроса.<br>В целях безопасности отображается только эта информация. Чтобы просмотреть подробную информацию об ошибке, установите dsj.Debug=True"
cmd="Выполнить команду :"¶m_dbtype
Response.Write SaveSQLLog(cmd,tmpMsg)
Еще
Ответ.Напишите «Произошла ошибка при подключении к базе данных. Проверьте правильность кода запроса».
Конец, если
Добавитькод_ошибки(101)
Установить objConn=Ничего
Ответ.Конец()
Конец, если
Конец, если
Конечная функция
'******************************
'Имя: СавеSQLLog
'Параметры: sCommand, Msg
'Возвращаемое значение: сообщение
'Функция: хранить журналы
'Время создания: 6 мая 2005 г.
'******************************
Открытая функция 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.Open logConnStr
Если сохранить журнал, то
Тусклый logCmd
logCmd="INSERT INTO DSJ_SQL_Log (Command,ScriptName,logUser,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=сообщение
SQLQueryNum=SQLQueryNum+1
Конечная функция
'******************************
'Имя: ExecuteCmd
'Параметр: cmd
'Возвращаемое значение: RecordSet
'Функция: вернуть набор записей, созданный cmd
'Время создания: 6 мая 2005 г.
'******************************
Открытая функция ExecuteCmd(cmd)
Если НЕ IsObject(objConn), то ConnectionDataBase p_DataBase,p_dbUserID,p_dbPassword,p_dbType
Если НЕ p_Debug, то при ошибке продолжить дальше
КлиентПодключен
Установите ExecuteCmd=objConn.Execute(cmd)
Если Ошибка Тогда
Ошиб.Очистить
objConn.Close
Установить objConn=Ничего
Если сохранить журнал, то
tmpMsg="При запросе данных обнаружена ошибка. Проверьте правильность кода запроса.<br>В целях безопасности отображается только эта информация. Чтобы просмотреть подробную информацию об ошибке, установите dsj.Debug=True"
Response.Write 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
'Параметр: fContent
'Возвращаемое значение: LinkFriend
'Функция: Заменить дружеские связи
'Время создания: 6 мая 2005 г.
'******************************
Открытая функция LinkFriend(fContent)
Если НЕ p_Debug, то при ошибке продолжить дальше
Если НЕ IsObject(objConn), то ConnectionDataBase DataBase,dbUserID,dbPassword,dbType
Set 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
Конечная функция
'********************************************** *****************
'Имя: ШоуПейдж
'Параметр: NULL
'Возвращаемое значение: NULL
'Функция: отображение навигации по записям подкачки
'проиллюстрировать:
'Оригинальная работа: zykj2000 Веб-сайт: http://bbs.513soft.net
' Модификация: Веб-сайт Alonesword: http://blog.csdn.net/alonesword/
Время: 7 мая 2005 г.
'********************************************** ****************
Публичная дополнительная страница ShowPage()
Тусклый str_tmp
p_intTotalRecords=rsDivPage.RecordCount
Если p_intTotalRecords<=0 Тогда
p_Error=p_Error & «Общее количество записей равно нулю, введите данные»
Вызовите ШоуОшибку().
Конец, если
Если p_intTotalRecords <=PageSize THen
p_intTotalPage=1
Еще
Если p_intTotalRecords мод PageSize = 0 Тогда
p_intTotalPage = CLng(p_intTotalRecords / PageSize * -1)*-1
Еще
p_intTotalPage = CLng(p_intTotalRecords / PageSize * -1)*-1+1
Конец, если
Конец, если
Если p_intCurPage>p_intTotalPage Тогда
p_intCurPage=p_intTotalPage
Конец, если
Response.Write ShowFirstPrv
showNumBtn
Response.Write ShowNextLast&" "
Response.Write 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()
Дим я,str_tmp
Тусклая ссылка на страницу
стр_tmp=""
От i=1 до p_intTotalPage Шаг 1
PageLink=" <a title='Page"&i&" href=""&AddnPageURL&i&"'>"&i&"</a> "
If i=p_intCurPage then 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&"records"&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=Имя сценария & "?page="
Еще
Если InstrRev(str_params,search_str)=0 Тогда
result_url=Имя_скрипта & "?" & str_params &"&page="
Еще
j=InstrRev(str_params,search_str)-2
Если j=-1 Тогда
result_url=Имя сценария & "?page="
Еще
str_params = Влево (str_params, j)
result_url=Имя_скрипта & "?" & str_params &"&page="
Конец, если
Конец, если
Конец, если
AddnPageURL=url_result_url
Конечная функция
'********************************************** ****************
Открытая функция GetName(Параметры)
Dim имя tmpName
tmpName=Request.ServerVariables("PATH_INFO")
arrTmpName=Split(tmpName,"/")
Если Options=0, то GetName=Server.Mappath(".")&GetName(1)
Если Options=1, то GetName=LCase(arrTmpName(UBound(arrTmpName)))
Если Options=2, то GetName=LCase(arrTmpName(UBound(arrTmpName)-1))&"/"
Конечная функция
Конечный класс
%>