#TITLE=Gemeinsame ASP-Syntax und -Funktionen
#INFO
Einige häufig verwendete Syntax und benutzerdefinierte Funktionen in ASP
#SORT=n
#T= ===Gemeinsame ASP-Syntax===
#T==============================
#T=datenbankbezogen
#T= Verbindung zur ACCESS-Datenbank herstellen
<%
Dimmen Sie DBName,Conn
DBName^! 'Datenbankpfad und -namen definieren
SET Conn = Server.CreateObject(ADODB.Connection)
Conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(DBName)
%>
#T= Verbindung zur MS SQL-Datenbank herstellen
<%
Dim Conn
SET Conn=Server.CreateObject(ADODB.connection)
Conn.Open PROVIDER=SQLOLEDB;DATA SOURCE=SQL-Servername oder IP-Adresse;UID=Datenbank-Anmeldekonto;PWD=Datenbankkennwort;DATABASE=Datenbankname
%>
#T= Datensatzsatz erstellen
SET ^!=Server.CreateObject(ADODB.recordset)
#T= SQL-Befehl ausführen
RS.Open SQL,conn,1,1
#T= SQL-Befehl ausführen
Conn.Execute(^!)
#T= RS führt SQL-Befehle direkt aus
SET RS = Conn.Execute(^!)
#T= Schließen Sie das Recordset
RS.SCHLIESSEN
SETZE RS=NICHT
#T= Datenbank schließen
Verbind.Schließen
SETConn=Nichts
#T==============================
#T=ServerVariables bezogen
#T= Ruft die Adresse der vorherigen Seite ab
Request.ServerVariables(HTTP_REFERER)
#T= Rufen Sie den Namen des Servers 1 ab
Request.ServerVariables(SERVER_NAME)
#T= Ruft den Namen des Servers 2 ab
Request.ServerVariables(HTTP_HOST)
#T= Server-IP abrufen
Request.ServerVariables(LOCAL_ADDR)
#T= Benutzer-IP abrufen
Request.ServerVariables(Remote_Host)
#T= Holen Sie sich die echte IP1 des Benutzers
Request.serverVariables(REMOTE_ADDR)
#T= Holen Sie sich die echte IP-Funktion des Benutzers
Funktion GetRealIP()
GetRealIP = Request.ServerVariables(HTTP_X_FORWARDED_FOR)
IF(GetRealIP = )THEN GetRealIP = Request.ServerVariables(REMOTE_ADDR)
Funktion beenden
#T= Server-Port abrufen
Request.ServerVariables(SERVER_PORT)
#T= Holen Sie sich das Server-Betriebssystem
Request.ServerVariables(OS)
#T= Ermittelt den absoluten Pfad des Servers
Request.ServerVariables(APPL_PHYSICAL_PATH)
#T= Ermitteln Sie den absoluten Pfad dieser Datei 1
Requet.ServerVariables(PATH_TRANSLATED)
#T= Ermitteln Sie den absoluten Pfad dieser Datei 2
Server.mappath(Request.ServerVariables(SCRIPT_NAME))
#T= Ermittelt den relativen Pfad dieser Datei 1
Request.ServerVariables(URL)
#T= Ermittelt den relativen Pfad dieser Datei 2
Request.ServerVariables(SCRIPT_NAME)
#T= Ermittelt den relativen Pfad dieser Datei 3
Request.ServerVariables(PATH_INFO)
#T= Ruft die Parameter nach der Adressleiste ab
Request.ServerVariables(QUERY_STRING)
#T= Informationen zum Serversystem abrufen
Request.ServerVariables(HTTP_USER_AGENT)
#T= Erkennung von Serverkomponenten
<%
Funktion IsObjInstalled(strClassString)
Bei Fehler Weiter fortsetzen
IsObjInstalled = False
Fehler = 0
DimxTestObj
SET xTestObj = Server.CreateObject(strClassString)
IF(0 = Err)THEN IsObjInstalled = True
SET xTestObj = Nichts
Fehler = 0
Funktion beenden
'IF(IsObjInstalled(Persits.Upload)=True)DANN
' Response.Write unterstützt die AspUpload-Komponente
'ANDERS
' Response.Write unterstützt die AspUpload-Komponente nicht
'ENDE WENN
%>
#T= Holen Sie sich das Client-Gebietsschema
^!Request.ServerVariables(HTTP_ACCEPT_LANGUAGE)
#T= Client-Informationen abrufen: HTTP_USER_AGENT
^!Request.ServerVariables(HTTP_USER_AGENT)
#T= Ruft den Wert des Formularwerts (Form) ab
Request.Form(^!)
#T= Ruft den von der URL übergebenen Wert ab
Request.QueryString(^!)
#T= Holen Sie sich die vollständige URL-Adresse
Funktion GetUrl()
GetUrl=http://&Request.ServerVariables(SERVER_N ... .ServerVariables(URL)
IF(Request.ServerVariables(QUERY_STRING)<>)THEN GetURL=GetUrl&?& Request.ServerVariables(QUERY_STRING)
Funktion beenden
#T==============================
#T=benutzerdefinierte Funktion
#T= HTML-Zeichen filtern
<%
'HTML-Zeichenfunktion filtern
Funktion HTMLEncode(str)
WENN(str <> )DANN
str = Ersetzen(str, &, &)
str = Ersetzen(str, >, >)
str = Ersetzen(str, <, <)
str = Ersetzen(str, Chr(32), )
str = Ersetzen(str, Chr(9), )
str = Ersetzen(str, Chr(34), )
str = Ersetzen(str, Chr(39), ')
str = Ersetzen(str, Chr(13), )
str = Ersetzen(str, Chr(10) & Chr(10), </P><P>)
str = Ersetzen(str, Chr(10), <BR>)
str = Ersetzen(str, Chr(255), )
ENDE WENN
HTMLEncode = str
Funktion beenden
%>
#T= Überprüfen Sie, ob die vorherige Seite von dieser Site übermittelt wurde
<%
'Überprüfen Sie, ob die vorherige Seite von dieser Site übermittelt wurde
'Rückgabe: Wahr, Falsch
'============================================== = ==============
Funktion IsSelfRefer()
Dimmen Sie 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 = True
ANDERS
IsSelfRefer = False
ENDE WENN
Funktion beenden
%>
#T= Alle HTML-Tags löschen
<%
'HTML-Tags löschen
Funktion stripHTML(htmlStr)
RegEx dimmen
SETregEx = NewRegexp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = <.+?>
htmlStr = regEx.Replace(htmlStr,)
htmlStr = Ersetzen(htmlStr, <,<)
htmlStr = Ersetzen(htmlStr, >,>)
htmlStr = Ersetzen(htmlStr,chr(10),)
htmlStr = Ersetzen(htmlStr,chr(13),)
stripHTML = htmlStr
SET regEx = Nichts
Funktion beenden
%>
#T= Ermittelt die Länge der Zeichenfolge
<%
'Funktion zum Ermitteln der Länge einer Zeichenfolge
Funktion GetLength(str)
Dunkle Länge
Für i=1 bis Len(str)
IF(Asc(Mid(str,i,1))<0 oder Asc(Mid(str,i,1))>256)DANN
Länge=Länge+2
ANDERS
Länge=Länge+1
ENDE WENN
Nächste
GetLength=Länge
Funktion beenden
%>
#T= fängt die Zeichenfolge mit der angegebenen Länge ab
<%
'Fang eine Zeichenfolge mit der angegebenen Länge ab und ersetze den Überschuss durch...
Funktion StrLeft(str,strlen)
WENN(str = )DANN
StrLeft =
Exit-Funktion
ENDE WENN
Dim l,t,c,i
str = Ersetzen(Ersetzen(Ersetzen(Ersetzen(str, , ),,chr(34)),>,>),<,<)
l=len(str)
t=0
Für i=1 bis l
c=Abs(Asc(Mid(str,i,1)))
WENN(c>255)DANN
t=t+2
ANDERS
t=t+1
ENDE WENN
WENN(t>strlen)DANN
StrLeft = left(str,i) & ...
Ausgang für
ANDERS
StrLeft = str
ENDE WENN
Nächste
StrLeft = Ersetzen(Ersetzen(Ersetzen(Ersetzen(StrLeft, , ),chr(34),),>,>),<,<)
Funktion beenden
%>
#T= Sichere Übermittlungsparameter abrufen
<%
'============================================== = ==============
'SQL-Injection-Check
'Funktionsfunktion: Einfache Anführungszeichen in Zeichenparametern filtern, numerische Parameter beurteilen und den Wert 0 zuweisen, wenn es sich nicht um einen numerischen Typ handelt
'Parameterbedeutung: str ---- Zu filternde Parameter
'strType ---- Parametertyp, unterteilt in Zeichentyp und numerischen Typ, Zeichentyp ist s, numerischer Typ ist i
'============================================== = ==============
Funktion CheckStr(str,strType)
Dimmen Sie strTmp
strTmp =
WENN(strType =s)DANN
strTmp = Ersetzen(Trim(str),','')
ELSEIF(strType=i)THEN
IF(IsNumeric(str)=False)THEN str=False
strTmp = str
ANDERS
strTmp = str
Beenden Sie IF
CheckStr= strTmp
Funktion beenden
%>
#T= Schlechte Zeichen herausfiltern (BadWord)
<%
'Filtern Sie schlechte Zeichen (BadWords)
Funktion ChkBadWords(fString)
Dim BadWords,bwords,i
BadWords = Fuck|fuck you|fuck him|fuck you|fuck|dog|bastard|cunt|dick|bastard|rape|make love|virgin|zemin|falun|falun|hongzhi|falun
IF(Not(IsNull(BadWords) or IsNull(fString)))THEN
bwords = Split(BadWords, |)
Für i = 0 bis UBound(bwords)
fString = Replacement(fString, bwords(i), string(Len(bwords(i)),*))
Nächste
ChkBadWords = fString
ENDE WENN
Funktion beenden
%>
#T= Generieren Sie ein zufälliges Passwort mit benutzerdefinierter Länge
<%
'Generieren Sie ein zufälliges Passwort mit benutzerdefinierter Länge
Funktion makePassword(maxLen)
Dimmen Sie strNewPass
Dimmen Sie whatsNext, Upper, Lower, intCounter
Randomisieren
Für intCounter = 1 bis maxLen
whatsNext = Int((1 - 0 + 1) * Rnd + 0)
WENN(whatsNext = 0)DANN
'Charakter
Obermaterial = 90
niedriger=65
ANDERS
Obermaterial = 57
niedriger = 48
ENDE WENN
strNewPass = strNewPass & Chr(Int((oberer - unterer + 1) * Rnd + unterer))
Nächste
makePassword = strNewPass
Funktion beenden
'Response.Write makepassword(8)
%>
#T= Behalten Sie beim Ausfüllen des Textbereichs das HTML-Format bei
<%
'============================================== = ==============
'Entfernen Sie das HTML-Format, das beim Abrufen von Werten aus der Datenbank und beim Ausfüllen des Eingabefelds verwendet wird
'Hinweis: value=? muss hier in doppelte Anführungszeichen gesetzt werden
'============================================== = ==============
Funktion inHTML(str)
Dimmtemp
sTemp = str
inHTML =
Wenn IsNull(sTemp) = True, dann
Exit-Funktion
Ende wenn
sTemp = Ersetzen(sTemp, &, &)
sTemp = Ersetzen(sTemp, <br>,chr(13))
sTemp = Ersetzen(sTemp, <, <)
sTemp = Ersetzen(sTemp, >, >)
sTemp = Ersetzen(sTemp, , Chr(34))
inHTML = sTemp
Funktion beenden
%>
#T= Funktion zur Überprüfung regulärer Tabellenausdrücke
<%
'Überprüfungsfunktion für reguläre Ausdrücke patrn-regulärer Ausdruck strng-string, der überprüft werden muss
'============================================== = ==============
Funktion RegExpTest(patrn, strng)
Dim regEx, retVal 'Variablen erstellen.
SET regEx = New RegExp ' Erstellt einen regulären Ausdruck.
regEx.Pattern = patrn ' Muster festlegen.
regEx.IgnoreCase = False 'Legen Sie fest, ob zwischen Groß- und Kleinschreibung unterschieden werden soll.
retVal = regEx.Test(strng) 'Suchtest ausführen.
RegExpTest = retVal 'Rückgabewert, wenn er nicht übereinstimmt, wird false zurückgegeben, wenn er übereinstimmt, wird true zurückgegeben
SET regEx = NICHTS
Funktion beenden
%>
#T= Zufällige Zeichenfolge generieren
<%
'Erzeuge eine zufällige Zeichenfolge
FunctionRndCode()
Dimmen Sie CodeSet,AmountSet
CodeSet = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
AmountSet = 62 'Textmenge
Randomisieren
Dimmen Sie vCode(10), vCodes,i
Für i = 0 bis 9
vCode(i) = Int(Rnd * AmountSet)
vCodes = vCodes & Mid(CodeSet, vCode(i) + 1, 1)
Nächste
RndCode=vCodes
Funktion beenden
%>
#T==============================
#T=FSO-bezogene Operationen
#T= Stellen Sie fest, ob das Verzeichnis existiert
<%
Funktion IsFloderExist(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
IF(FSO.FolderExists(strFolderName))THEN
IsFloderExist = True
ANDERS
IsFloderExist = False
ENDE WENN
SET FSO=NOTHING
Funktion beenden
%>
#T= Verzeichnis erstellen
<%
Funktion CreateFolder(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
IF(FSO.FolderExists(strFolderName) = False)DANN
FSO.CreateFolder(strFolderName)
ENDE WENN
FSO = NICHTS SETZEN
END-Funktion
%>
#T= Verzeichnis löschen
<%
Funktion DeleteFolder(strFolderName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
IF(FSO.FolderExists(strFolderName))THEN
FSO.DeleteFolder(strFolderName)
ENDE WENN
SET FSO=NOTHING
END-Funktion
%>
#T= Bestimmen Sie, ob die Datei vorhanden ist
<%
Funktion IsFileExist(strFileName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
IF(FSO.FileExists(strFileName))DANN
IsFileExist = True
ANDERS
IsFileExist = False
ENDE WENN
FSO = NICHTS SETZEN
Funktion beenden
%>
#T= Datei löschen
<%
Funktion DeleteFile(strFileName)
SET FSO=Server.CreateObject(Scripting.FileSystemObject)
IF(FSO.FileExists(strFileName))DANN
FSO.DeleteFile(strFileName)
ENDE WENN
FSO = NICHTS SETZEN
END-Funktion
%>
#T==============================
#T= Mehrere Funktionen, die häufig von ASP-Dieben verwendet werden
<%
Funktion ByteToStr(vIn)
Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn =
Für i = 1 Zu LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
IF(ThisCharCode < &H80)DANN
strReturn = strReturn & Chr(ThisCharCode)
ANDERS
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
ich = ich + 1
ENDE WENN
Nächste
ByteToStr = strReturn
Funktion beenden
Funktion GetHttpPageContent(url,Method,SendStr)
Dunkler Abruf
SET Retrieval = Server.CreateObject(Microsoft.XMLHTTP)
Mit Abruf
.Open-Methode, URL, False , ,
.setRequestHeader Content-Type,application/x-www-form-urlencoded
.Send(SendStr)
GetHttpPageContent = .ResponseBody
Ende mit
SET-Abruf = Nichts
GetHttpPageContent=ByteToStr(GetHttpPageContent)
Funktion beenden
Funktion RegExpText(strng,regStr)
Dimmen Sie regEx,Match,Matches,RetStr
SET regEx = Neuer RegExp
regEx.Pattern = regStr
regEx.IgnoreCase = True
regEx.Global = True
SET Matches = regEx.Execute(strng)
Für jedes Spiel in Spielen
RetStr = RetStr & regEx.Replace(Match.Value,$1) & ,
Nächste
RegExpText = RetStr
setze regEx=nichts
Funktion beenden
Funktion StreamBytesToBstr(strBody, CodeBase)
Dimmen Sie objStream
SET objStream = Server.CreateObject(Adodb.Stream)
Mit objStream
.Typ = 1
.Modus = 3
.Offen
.StrBody schreiben
.Position = 0
.Typ = 2
.Charset = CodeBase
StreamBytesToBstr = .ReadText
.Schließen
Ende mit
SET objStream = Nichts
Funktion beenden
%>