#TITLE=Общий синтаксис и функции ASP
#ИНФОРМАЦИЯ
Некоторые часто используемые синтаксисы и пользовательские функции в ASP
#СОРТИРОВАТЬ=n
#T= ===Общий синтаксис ASP===
#T=============================
#T=связано с базой данных
#T= Подключиться к базе данных ACCESS
<%
Тусклое имя базы данных, соединение
DBName^! 'Определите путь и имя базы данных
SET Conn = Server.CreateObject(ADODB.Connection)
Conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Источник данных= & Server.MapPath(DBName)
%>
#T= Подключиться к базе данных MS SQL
<%
Дим Конн
SET Conn=Server.CreateObject(ADODB.connection)
Conn.Open PROVIDER=SQLOLEDB;DATA SOURCE=имя SQL-сервера или IP-адрес;UID=учетная запись для входа в базу данных;PWD=пароль базы данных;DATABASE=имя базы данных
%>
#T= Создать набор записей
SET ^!=Server.CreateObject(ADODB.recordset)
#T= Выполнить команду SQL
RS.Open SQL, подключение, 1,1
#T= Выполнить команду SQL
Подключить.Выполнить(^!)
#T= RS напрямую выполняет команды SQL
SET RS = Conn.Execute(^!)
#T= Закрыть набор записей
RS.ЗАКРЫТЬ
УСТАНОВИТЬ RS=НИЧЕГО
#T= Закрыть базу данных
Конн.Закрыть
SETConn=Ничего
#T=============================
#T=Связанные с серверными переменными
#T= Получить адрес предыдущей страницы
Request.ServerVariables(HTTP_REFERER)
#T= Получить имя сервера 1
Request.ServerVariables(SERVER_NAME)
#T= Получить имя сервера 2
Request.ServerVariables(HTTP_HOST)
#T= Получить IP-адрес сервера
Request.ServerVariables(LOCAL_ADDR)
#T= Получить IP-адрес пользователя
Request.ServerVariables(Remote_Host)
#T= Получить реальный IP1 пользователя
Request.serverVariables(REMOTE_ADDR)
#T= Получить функцию реального IP-адреса пользователя
Функция ПолучитьРеалIP()
GetRealIP = Request.ServerVariables(HTTP_X_FORWARDED_FOR)
IF(GetRealIP =)THEN GetRealIP = Request.ServerVariables(REMOTE_ADDR)
Конечная функция
#T= Получить порт сервера
Request.ServerVariables(SERVER_PORT)
#T= Получите операционную систему сервера
Request.ServerVariables(ОС)
#T= Получить абсолютный путь к серверу
Request.ServerVariables(APPL_PHYSICAL_PATH)
#T= Получить абсолютный путь к этому файлу 1
Requet.ServerVariables(PATH_TRANSLATED)
#T= Получить абсолютный путь к этому файлу 2
Server.mappath(Request.ServerVariables(SCRIPT_NAME))
#T= Получить относительный путь к этому файлу 1
Request.ServerVariables(URL)
#T= Получить относительный путь к этому файлу 2
Request.ServerVariables(SCRIPT_NAME)
#T= Получить относительный путь к этому файлу 3
Request.ServerVariables(PATH_INFO)
#T= Получить параметры после адресной строки
Request.ServerVariables(QUERY_STRING)
#T= Получить информацию о системе сервера
Request.ServerVariables(HTTP_USER_AGENT)
#T= Обнаружение компонентов сервера
<%
Функция IsObjInstalled(strClassString)
При ошибке Возобновить Далее
IsObjInstalled = Ложь
Ошибка = 0
Димкстестобдж
SET xTestObj = Server.CreateObject(strClassString)
ЕСЛИ(0 = Ошибка)ТО IsObjInstalled = Истина
SET xTestObj = Ничего
Ошибка = 0
Конечная функция
'IF(IsObjInstalled(Persits.Upload)=True)THEN
' Response.Write поддерживает компонент AspUpload
'ЕЩЕ
' Response.Write не поддерживает компонент AspUpload
'КОНЕЦ ЕСЛИ
%>
#T= Получить локаль клиента
^!Request.ServerVariables(HTTP_ACCEPT_LANGUAGE)
#T= Получить информацию о клиенте: HTTP_USER_AGENT
^!Request.ServerVariables(HTTP_USER_AGENT)
#T= Получить значение элемента формы (Form)
Запрос.Форма(^!)
#T= Получить значение, переданное по URL-адресу
Запрос.QueryString(^!)
#T= Получить полный URL-адрес
Функция ПолучитьUrl()
GetUrl=http://&Request.ServerVariables(SERVER_N ... .ServerVariables(URL)
IF(Request.ServerVariables(QUERY_STRING)<>)THEN GetURL=GetUrl&?& Request.ServerVariables(QUERY_STRING)
Конечная функция
#T=============================
#T=пользовательская функция
#T= Фильтровать символы HTML
<%
'Фильтрация символов HTML
Функция HTMLEncode(str)
ЕСЛИ(ул <> )ТО
ул = Заменить(стр, &, &)
строка = Заменить(строка, >, >)
строка = Заменить(строка, <, <)
str = Заменить(str, Chr(32), )
str = Заменить(str, Chr(9), )
str = Заменить(str, Chr(34), )
str = Заменить(str, Chr(39), ')
str = Заменить(str, Chr(13), )
str = Заменить(str, Chr(10) & Chr(10), </P><P>)
str = Заменить(str, Chr(10), <BR>)
str = Заменить(str, Chr(255), )
КОНЕЦ ЕСЛИ
HTMLEncode = строка
Конечная функция
%>
#T= Проверить, была ли предыдущая страница отправлена с этого сайта
<%
'Проверяем, была ли предыдущая страница отправлена с этого сайта
'Возврат: Правда, Ложь
'============================================== = ==============
Функция IsSelfRefer()
Тусклый sHttp_Referer, sServer_Name
sHttp_Referer = CStr(Request.ServerVariables(HTTP_REFERER))
sServer_Name = CStr(Request.ServerVariables(SERVER_NAME))
IF(Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name)THEN
IsSelfRefer = Истина
ЕЩЕ
Исселфрефер = ложь
КОНЕЦ ЕСЛИ
Конечная функция
%>
#T= Очистить все HTML-теги
<%
'Очистить HTML-теги
Функция StripHTML(htmlStr)
Тусклое регулярное выражение
SETregEx = Новоерегэксп
regEx.IgnoreCase = Истина
regEx.Global = Истина
regEx.Pattern = <.+?>
htmlStr = regEx.Replace(htmlStr,)
htmlStr = Заменить(htmlStr, <,<)
htmlStr = Заменить(htmlStr, >,>)
htmlStr = Заменить(htmlStr,chr(10),)
htmlStr = Заменить(htmlStr,chr(13),)
полосаHTML = htmlStr
SET regEx = Ничего
Конечная функция
%>
#T= Получить длину строки
<%
'Функция определения длины строки
Функция GetLength(строка)
Тусклая длина
Для i=1 до Len(str)
IF(Asc(Mid(str,i,1))<0 или Asc(Mid(str,i,1))>256)THEN
Длина=Длина+2
ЕЩЕ
Длина=Длина+1
КОНЕЦ ЕСЛИ
Следующий
GetLength=Длина
Конечная функция
%>
#T= перехватить строку указанной длины
<%
'Перехватить строку указанной длины, заменить лишнее на...
Функция StrLeft(str,strlen)
ЕСЛИ(строка =)ТО
СтрЛефт =
Выход из функции
КОНЕЦ ЕСЛИ
Дим л, т, с, я
str = Заменить(Заменить(Заменить(Заменить(str, , ),,chr(34)),>,>),<,<)
л=лен(стр)
т=0
Для i = от 1 до l
c=Abs(Asc(Mid(str,i,1)))
ЕСЛИ(c>255)ТО
т=т+2
ЕЩЕ
т=т+1
КОНЕЦ ЕСЛИ
ЕСЛИ(t>strlen)ТО
StrLeft = влево(str,i) &...
Выход для
ЕЩЕ
СтрЛефт = ул
КОНЕЦ ЕСЛИ
Следующий
StrLeft = Заменить(Заменить(Заменить(Заменить(StrLeft, , ),chr(34),),>,>),<,<)
Конечная функция
%>
#T= Получить параметры безопасной отправки
<%
'============================================== = ==============
'Проверка SQL-инъекций
'Функциональная функция: фильтровать одинарные кавычки в символьных параметрах, оценивать числовые параметры и присваивать значение 0, если это не числовой тип.
'Значение параметра: str ---- параметры для фильтрации
'strType ---- тип параметра, разделенный на символьный и числовой тип, тип символа — s, числовой тип — i.
'============================================== = ==============
Функция CheckStr(str,strType)
Тусклый стрТмп
стрТмп =
ЕСЛИ(strType =s)ТО
strTmp = Заменить(Trim(str),','')
ELSEIF(strType=i)THEN
ЕСЛИ(IsNumeric(str)=False)THEN str=False
стрТмп = ул
ЕЩЕ
стрТмп = ул
Конец ЕСЛИ
CheckStr= стрТмп
Конечная функция
%>
#T= Отфильтровать плохие символы (BadWord)
<%
'Фильтрация плохих персонажей (BadWords)
Функция ChkBadWords(fString)
Dim BadWords,bwords,i
BadWords = Трахать|трахать тебя|трахать его|трахать тебя|трахать|собака|ублюдок|пизда|член|ублюдок|изнасиловать|заниматься любовью|девственница|цемин|фалунь|фалунь|хунчжи|фалунь
IF(Not(IsNull(BadWords) или IsNull(fString)))THEN
bwords = Split(BadWords, |)
Для i = 0 до UBound(bwords)
fString = Заменить(fString, bwords(i), string(Len(bwords(i)),*))
Следующий
ChkBadWords = fString
КОНЕЦ ЕСЛИ
Конечная функция
%>
#T= Создать случайный пароль произвольной длины
<%
'Сгенерировать случайный пароль произвольной длины
Функция makePassword(maxLen)
Dim strNewPass
Уменьшите яркость WhatsNext, Upper, Lower, intCounter
Рандомизировать
Для intCounter = 1 To maxLen
WhatsNext = Int((1 - 0 + 1) * Rnd + 0)
ЕСЛИ(чтоСледующее = 0)ТО
'характер
верхний = 90
нижний = 65
ЕЩЕ
верхний = 57
нижний = 48
КОНЕЦ ЕСЛИ
strNewPass = strNewPass & Chr(Int((верхний - нижний + 1) * Rnd + нижний))
Следующий
makePassword = strNewPass
Конечная функция
'Ответ. Напишите makepassword(8)
%>
#T= Сохранять формат HTML при заполнении текстового поля.
<%
'============================================== = ==============
'Удалить формат Html, используемый при извлечении значений из базы данных и заполнении поля ввода
'Примечание: здесь value=? необходимо использовать двойные кавычки.
'============================================== = ==============
Функция inHTML(str)
Тусклый темп
сТемп = ул
вHTML =
Если IsNull(sTemp) = Истина Тогда
Выход из функции
Конец, если
sTemp = Заменить(sTemp, &, &)
sTemp = Заменить(sTemp, <br>,chr(13))
sTemp = Заменить(sTemp, <, <)
sTemp = Заменить(sTemp, >, >)
sTemp = Заменить(sTemp, , Chr(34))
inHTML = sTemp
Конечная функция
%>
#T= Функция проверки регулярного табличного выражения
<%
'Функция проверки регулярного выражения patrn-регулярное выражение строка-строка, которую необходимо проверить
'============================================== = ==============
Функция RegExpTest(patrn, strng)
Dim regEx, retVal 'Создать переменные.
SET regEx = New RegExp ' Создайте регулярное выражение.
regEx.Pattern = Patrn 'Установить шаблон.
regEx.IgnoreCase = False 'Установите, следует ли учитывать регистр.
retVal = regEx.Test(strng) 'Выполнить проверку поиска.
RegExpTest = retVal 'Возвращаемое значение, если оно не совпадает, возвращается false, если совпадает, возвращается true
УСТАНОВИТЬ регулярное выражение = НИЧЕГО
Конечная функция
%>
#T= Создать случайную строку
<%
'Создаем случайную строку
ФункцияRndCode()
Тусклый кодовый набор, AmountSet
CodeSet = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
AmountSet = 62 'Объем текста
Рандомизировать
Dim vCode(10), vCodes,i
Для я = от 0 до 9
vCode(i) = Int(Rnd * AmountSet)
vCodes = vCodes & Mid(CodeSet, vCode(i) + 1, 1)
Следующий
RndCode=vКоды
Конечная функция
%>
#T=============================
#T=Операции, связанные с FSO
#T= Определить, существует ли каталог
<%
Функция IsFloderExist(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
ЕСЛИ(FSO.FolderExists(strFolderName))ТО
ИсФлодерExist = Истина
ЕЩЕ
ИсФлодерExist = Ложь
КОНЕЦ ЕСЛИ
УСТАНОВИТЬ FSO=НИЧЕГО
Конечная функция
%>
#T= Создать каталог
<%
Функция CreateFolder(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
ЕСЛИ(FSO.FolderExists(strFolderName) = False)ТО
FSO.CreateFolder(strFolderName)
КОНЕЦ ЕСЛИ
УСТАНОВИТЬ FSO=НИЧЕГО
КОНЕЦ Функция
%>
#T= Удалить каталог
<%
Функция УдалитьФолдер(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
ЕСЛИ(FSO.FolderExists(strFolderName))ТО
FSO.DeleteFolder(strFolderName)
КОНЕЦ ЕСЛИ
УСТАНОВИТЬ FSO=НИЧЕГО
КОНЕЦ Функция
%>
#T= Определить, существует ли файл
<%
Функция IsFileExist(strFileName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
ЕСЛИ(FSO.FileExists(strFileName))THEN
ИсФайлЭкзист = Истина
ЕЩЕ
IsFileExist = Ложь
КОНЕЦ ЕСЛИ
УСТАНОВИТЬ FSO=НИЧЕГО
Конечная функция
%>
#T= удалить файл
<%
Функция УдалитьФайл(strFileName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
ЕСЛИ(FSO.FileExists(strFileName))THEN
FSO.DeleteFile(strFileName)
КОНЕЦ ЕСЛИ
УСТАНОВИТЬ FSO=НИЧЕГО
КОНЕЦ Функция
%>
#T=============================
#T= Несколько функций, часто используемых злоумышленниками ASP.
<%
Функция ByteToStr(vIn)
Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
стрReturn =
Для i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
ЕСЛИ(ЭтотCharCode < &H80)ТО
стрReturn = strReturn & Chr(ThisCharCode)
ЕЩЕ
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
я = я + 1
КОНЕЦ ЕСЛИ
Следующий
ByteToStr = стрReturn
Конечная функция
Функция GetHttpPageContent(url,Method,SendStr)
Тусклый поиск
SET Получение = Server.CreateObject(Microsoft.XMLHTTP)
С поиском
.Открытый метод, URL, False , ,
.setRequestHeader Content-Type,application/x-www-form-urlencoded
.Send(SendStr)
GetHttpPageContent = .ResponseBody
Конец с
SET Получение = Ничего
GetHttpPageContent=ByteToStr(GetHttpPageContent)
Конечная функция
Функция RegExpText(strng,regStr)
Dim regEx,Match,Matches,RetStr
SET regEx = Новое регулярное выражение
regEx.Pattern = regStr
regEx.IgnoreCase = Истина
regEx.Global = Истина
SET Matches = regEx.Execute(strng)
За каждый матч в матчах
RetStr = RetStr & regEx.Replace(Match.Value,$1) & ,
Следующий
РегЭкспТекст = РетСтр
установить regEx=ничего
Конечная функция
Функция StreamBytesToBstr(strBody, CodeBase)
Тусклый объектный поток
SET objStream = Server.CreateObject(Adodb.Stream)
С объектным потоком
.Тип = 1
.Режим = 3
.Открыть
.Напишите strBody
.Позиция = 0
.Тип = 2
.Charset = Кодовая база
StreamBytesToBstr = .ReadText
.Закрывать
Конец с
SET objStream = Ничего
Конечная функция
%>