<%
' 提交かどうか外部から判断
パブリック関数 ChkPost()
ディムサーバー_v1、サーバー_v2
チェックポスト=False
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
Mid(server_v1,8,len(server_v2))=server_v2 の場合、Chkpost=True
終了機能
' システムは随机秘密コードを割り当てます
パブリック関数 Createpass()
Dim Ran,i,LengthNum
長さ番号=16
作成パス = "
i=1 の場合、LengthNum まで
ランダム化
Ran = CInt(Rnd * 2)
ランダム化
Ran = 0 の場合
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& UCase(Chr(Ran))
ElseIf Ran = 1 then
Ran = CInt(Rnd * 9)
クリエイトパス = クリエイトパス&ラン
ElseIf Ran = 2 then
Ran = CInt(Rnd * 25) + 97
Createpass =Createpass& Chr(Ran)
終了の場合
次
終了機能
' 再写実行
レム関数
パブリック関数の実行(コマンド)
IsObject(Conn) でない場合は ConnectionDatabase
'检查权制限、注入攻撃击を防止
If InStr(LCase(Command),"dv_admin")>0 And Left(ScriptName,6)<> "admin_" then
Response.Write SaveSQLLOG(コマンド,"")
Command=Replace(LCase(Command),"dv_admin","dv<i>"&Chr(95)&"</i>admin")
終了の場合
IsDeBug = 0 の場合
エラー時は次へ再開
実行 = Conn.Execute(コマンド) を設定します。
エラーの場合はその後
エラークリア
Conn = 何も設定しない
Response.Write SaveSQLLOG(Command,"データを監査するときに、監査コードが正しいかどうかを検査します。<br>安全な理由に基づいて、この情報のみを表示します。詳細を確認し、修正されたプログラム ファイルを確認します。 conn.asp。ハンドル""Const IsDeBug = 0""変更:""Const IsDeBug = 1""")
応答.終了
終了の場合
それ以外
'Response.Write コマンド & "<br>"
実行 = Conn.Execute(コマンド) を設定します。
終了の場合
SqlQueryNum = SqlQueryNum+1
「记录查询错误」
イベントの終了
パブリック関数 SaveSQLLOG(sCommand,message)
Dim lConnStr、lConn、ldb、SQL、RS
ldb = "データ/DvSQLLOG.mdb"
lConnStr = "プロバイダ = Microsoft.Jet.OLEDB.4.0;データ ソース = " & Server.MapPath(ldb)
Set lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
Set Rs = Server.CreateObject("adodb.recordset")
Sql="dv_sql_log から * を選択"
Rs.open sql、lconn、1、3
Rs.追加新規
Rs("スクリプト名")=スクリプト名
Rs("S_Info")=Left(sCommand,255)
Rs("ip")=ユーザーTrueIP
Rs.アップデート
閉じる
lConn.Execute(SQL)
l接続を閉じる
lConn = 何も設定しない
SaveSQLLOG = メッセージ
終了関数
「IP来源」
パブリック機能アドレス(sip)
Dim aConnStr、aConn、adb
薄暗い str1、str2、str3、str4
ディムナム
薄暗い田舎、街
ディムIR、SQL
If IsNumeric(Left(sip,2)) then
sip="127.0.0.1" の場合、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)
isNumeric(str1)=0 または isNumeric(str2)=0 または isNumeric(str3)=0 または isNumeric(str4)=0 の場合
それ以外
数値=CLng(str1)*16777216+CLng(str2)*65536+CLng(str3)*256+CLng(str4)-1
adb = "データ/ipaddress.mdb"
aConnStr = "プロバイダー = Microsoft.Jet.OLEDB.4.0;データ ソース = " & Server.MapPath(adb)
Set AConn = Server.CreateObject("ADODB.Connection")
aConn.Open aConnStr
sql="ip1 <="&num&" および ip2 >="&num&" の dv_address から上位 1 つの国、都市を選択します"
irs=aConn.execute(sql) を設定します。
irs.EOF と irs.bof の場合
国=「亚洲」
都市 = "
それ以外
国=国外(0)
都市=irs(1)
終了の場合
irs=何も設定しない
aConn = なしを設定します
SqlQueryNum = SqlQueryNum+1
終了の場合
住所=国&都市
それ以外
アドレス=「不明」
終了の場合
終了機能
'ユーザーが配信するためのさまざまな情報の通過、带脏过滤
パブリック関数 HTMLEncode(fString)
IsNull(fString) でない場合は、
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), " ") '
fString = Replace(fString, CHR(9), " ") '
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'") '过滤单引号
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
fString=ChkBadWords(fString)
HTMLエンコード = fString
終了の場合
終了機能
' 论坛自身の过滤、不带脏话过滤
パブリック関数 iHTMLEncode(fString)
IsNull(fString) でない場合は、
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(9), " ")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
iHTMLEncode = fString
終了の場合
終了機能
パブリック関数 strLength(str)
isNull(str) または Str = "" の場合
StrLength = 0
終了関数
終了の場合
薄暗いWINNT_CHINESE
WINNT_CHINESE=(len("例子")=2)
WINNT_CHINESE の場合
薄暗い l、t、c
ディム・アイ
l=レン(文字列)
t=l
i=1 から l まで
c=asc(mid(str,i,1))
c<0 の場合、c=c+65536
c>255 の場合、t=t+1
次
strLength=t
それ以外
strLength=len(str)
終了の場合
終了機能
パブリック関数 ChkBadWords(Str)
IsNull(Str) の場合は関数を終了します
ディム・アイ
For i = 0 から Ubound(BadWords)
If i > UBound(rBadWord) then
Str = Replace(Str,BadWords(i),"*")
それ以外
Str = Replace(Str,BadWords(i),rBadWord(i))
終了の場合
次
ChkBadWords = Str
終了機能
パブリック関数 Checkstr(Str)
If Isnull(Str) then
CheckStr = ""
終了関数
終了の場合
CheckStr = Replace(Str,""",""")
終了機能
'带端口のURLを取得、推荐使用
プロパティの取得 Get_ScriptNameUrl()
request.servervariables("SERVER_PORT")="80" の場合
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
それ以外
Get_ScriptNameUrl="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&replace(lcase(request.servervariables("script_name")),ScriptName,"")
終了の場合
End プロパティ
'检查Email 地址有效性
関数 IsValidEmail(電子メール)
薄暗い名前、名前、i、c
IsValidEmail = true
names = Split(メールアドレス, "@")
if UBound(names) <> 1 then
IsValidEmail = false
終了関数
終了する場合
名前のそれぞれの名前に対して
Len(名前) <= 0 の場合
IsValidEmail = false
終了関数
終了する場合
for i = 1 から Len(名前)
c = Lcase(Mid(名前, i, 1))
InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 で、IsNumeric(c) ではない場合
IsValidEmail = false
終了関数
終了する場合
次
if Left(name, 1) = "."または Right(name, 1) = "."それから
IsValidEmail = false
終了関数
終了する場合
次
if InStr(names(1), ".") <= 0 then
IsValidEmail = false
終了関数
終了する場合
i = Len(names(1)) - InStrRev(names(1), ".")
i <> 2 かつ i <> 3 の場合
IsValidEmail = false
終了関数
終了する場合
if InStr(email, "..") > 0 then
IsValidEmail = false
end if
終了関数
function strLength(str)
エラー時は次へ再開
薄暗いWINNT_CHINESE
WINNT_CHINESE = (len("论坛")=2)
WINNT_CHINESEの場合
薄暗い l、t、c
薄暗い私
l=レン(文字列)
t=l
i=1 ~ l の場合
c=asc(mid(str,i,1))
c<0 の場合、c=c+65536
c>255 の場合
t=t+1
終了する場合
次
strLength=t
それ以外
strLength=len(str)
終了する場合
if err.number<>0 then err.clear
関数終了
関数cutStr(str,strlen)
薄暗い l、t、c
l=レン(文字列)
t=0
i=1 ~ l の場合
c=Abs(Asc(Mid(str,i,1)))
c>255 の場合
t=t+2
それ以外
t=t+1
終了する場合
t>=strlen の場合
CutStr=left(str,i)&"..."
のために出る
それ以外
カット強度=str
終了する場合
次
CutStr=replace(cutStr,chr(10),"")
関数終了
関数 fixjs(Str)
If Str <>"" then
str = replace(str,"", "\")
Str = replace(str, chr(34), """")
Str = replace(str, chr(39),"'")
Str = 置換(str, chr(13), "n")
Str = 置換(str, chr(10), "r")
str = replace(str,"'", "'")
終了の場合
fixjs=Str
終了機能
関数 enfixjs(Str)
If Str <>"" then
Str = replace(str,"'", "'")
Str = replace(str,"""" , chr(34))
Str = replace(str, "'",chr(39))
Str = 置換(str, "r", chr(10))
Str = 置換(str, "n", chr(13))
Str = replace(str,"\", "")
終了の場合
enfixjs=Str
終了機能
クラスCls_Browser
パブリックブラウザ、バージョン、プラットフォーム
プライベートサブクラス_Initialize()
ブラウザ=「不明」
バージョン="不明"
プラットフォーム = "不明"
ディムエージェント
Agent=Request.ServerVariables("HTTP_USER_AGENT")
エージェント=分割(エージェント,";")
InStr(Agent(1),"MSIE")>0 の場合
ブラウザ=「Microsoft Internet Explorer」
version=Trim(Left(Replace(Agent(1),"MSIE",""),6))
ElseIf InStr(Agent(4),"Netscape")>0 then
ブラウザ=「ネットスケープ」
ディムtmpstr
tmpstr=Split(エージェント(4),"/")
version=tmpstr(UBound(tmpstr))
終了の場合
If InStr(Agent(2),"NT 5.2")>0 then
プラットフォーム="Windows 2003"
ElseIf InStr(Agent(2),"NT 5.1")>0 then
プラットフォーム = "Windows XP"
ElseIf InStr(Agent(2),"NT 5.0")>0 then
プラットフォーム = "Windows 2000"
ElseIf InStr(Agent(2),"9x")>0 then
プラットフォーム = "Windows ME"
ElseIf InStr(Agent(2),"98")>0 then
プラットフォーム = "Windows 98"
ElseIf InStr(Agent(2),"95")>0 then
プラットフォーム = "Windows 95"
終了の場合
'记录未知エージェント
Browser="unknown" または version="unknown" または platform="unknown" の場合
Agent=Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
ディム lConnStr,lConn,ldb
ldb = "データ/DvSQLLOG.mdb"
lConnStr = "プロバイダ = Microsoft.Jet.OLEDB.4.0;データ ソース = " & Server.MapPath(ldb)
Set lConn = Server.CreateObject("ADODB.Connection")
lConn.Open lConnStr
lConn.Execute("[エージェント](UserAgent)Values('" & エージェント & "')") に挿入
l接続を閉じる
lConn = 何も設定しない
終了の場合
エンドサブ
終了クラス
%>