www.gusucode.com > 栽豆迷你博客 MiniBlog 3.0 正式版源码程序 > Include/CB_Main.asp

    <%
Class keep_main
Public SqlQueryNum,ScriptName,Userid,UserWord,UserDisp,UserTrueIP,SkinID,SysData,SysAdmin,Com,NothingNav,UserFr
Public SystemName,DomainName,CookiePath,LogFiles,WebFiles,MailServer,RootMail,DefaultSkin,Isinstall,AllFavorites,AllUser,NewUser,TopSignUser,htmlpath,BadWords,BadNames,Integral,MasterName,NickName,udata
'Private 
Private Sub Class_Initialize()
	SqlQueryNum = 0
	If Not Response.IsClientConnected Then
		Session(CacheName&"UserID")=empty
		Set Caluoob=Nothing
		Response.End
	End If
	Dim TmpScript
	TmpScript = Request.ServerVariables("PATH_INFO")
	TmpScript = Split(TmpScript,"/")
	ScriptName = Lcase(TmpScript(UBound(TmpScript)))
	UserID=Request.cookies(CookieName)("UserID")
	NickName=Request.cookies(CookieName)("NickName")
	UserWord=Request.cookies(CookieName)("UserPW")
	UserDisp=Request.cookies(CookieName)("UserDisp")
	SkinID=Request.cookies(CookieName)("UserSkin")
	UserTrueIP = getIP()
	Call SysCache():Call LoadAdmin()
	SystemName=SysData(0,0)
	DomainName=SysData(1,0):CookiePath=SysData(2,0)
	LogFiles=SysData(3,0):WebFiles=SysData(4,0)
	MailServer=SysData(5,0):RootMail=SysData(6,0)
	DefaultSkin=SysData(7,0):Isinstall=Split(SysData(8,0),","):AllFavorites=SysData(10,0)
	AllUser=SysData(11,0):NewUser=SysData(12,0)
	TopSignUser=SysData(13,0):htmlpath=SysData(14,0)
	BadWords=Split(SysData(16,0),"|"):BadNames=Split(SysData(17,0),"|"):MasterName=SysAdmin(0,0)
	If IsNumeric(UserID) = 0 Or UserID="" Then UserID=0
	If IsNumeric(UserDisp) = 1 Or UserDisp="" Then UserDisp=1
	Com=false
	CheckUserLogin:NothingNav=""
End Sub

Public Function Execute(Command)
	If Not IsObject(Conn) Then ConnectionDatabase
		Set Execute = Conn.Execute(Command)
		If Err Then
			err.Clear
			Set Conn = Nothing
			Response.Redirect "Error.asp?txt=操作失败,请审查您提交的数据。"
			Response.End
		End If
		SqlQueryNum = SqlQueryNum+1
End Function

Private Sub SysCache()
	IF isArray(Application(CachesName&"loadSystem"))=False then
		Dim Rs:Set Rs = Execute("Select sysnames,domainames,cookispath,logfiles,webfiles,servmail,rootmail,dftskins,isinstall,lockips,allfav,alluser,newuser,topuser,htmlpath,iconum,BadWords,BadNames From [cb_system]")
		Application.Lock
		Application(CachesName&"LoadSystem")=Rs.GetRows(1)
		Application.UnLock
		Rs.close:Set Rs=nothing
	End if
		SysData=Application(CachesName&"LoadSystem")
End Sub

Private Sub LoadAdmin()
	IF isArray(Application(CachesName&"Admin"))=False then
		Dim Rs:Set Rs = Execute("Select usernames From [cb_admin]")
		Application.Lock
		Application(CachesName&"Admin")=Rs.GetRows(1)
		Application.UnLock
		Rs.close:Set Rs=nothing
	End if
		SysAdmin=Application(CachesName&"Admin")
End Sub

Public Sub CheckUserLogin()
		If UserID<>"" and UserWord<>"" then
			Com=true
			If isarray(udata)=False and Com=true then UserData
		Else
			Call GuestSession
		End If
		'IP锁定
		Dim IpData,j:IpData=Split(SysData(9,0),"|")
		For j=0 to ubound(Split(SysData(9,0),"|"))
		If IpData(j)=UserTrueIP then Response.Write "您的IP已被禁止。":Response.end
		next
End Sub

Public Sub UserData()
		Dim Rs
		Set Rs=Execute("Select top 1 id,nicknames,passwords,emails,questionid,answers,locks,favcount,lastlogin,display,friendsnum,album,friends From [cb_user] Where id="&UserID)
		If Not(Rs.Eof and Rs.Bof) Then
			If UserWord=left(Rs(2),16) then
			udata=Rs.GetRows(1)
			Else
			Call GuestSession
			Response.Redirect "Exit.asp":Response.End
			End If
		Else
			Call GuestSession
		End If
		Rs.close:Set Rs=Nothing
End Sub

Public Sub LogString
	If UserID="" Then Response.Redirect "Exit.asp"
	If Isinstall(4)=1 Then Exit Sub
	Dim Arguments:Arguments=Checkstr(Request.ServerVariables("Query_String"))
	If Arguments="" Then Arguments="unknown"
	Execute("insert into [cb_log] (ScriptName,Arguments,UserName,UserIP) values('"&ScriptName&"','"&Arguments&"','"&NickName&"','"&UserTrueIP&"')")
End Sub

Public Sub GuestSession()
	Response.Cookies(CookieName).path=CookiePath
	Response.Cookies(CookieName)("UserID") = 0
	Response.Cookies(CookieName)("UserDisp")= "0,0,1"
	Response.Cookies(CookieName)("UserSkin")=DefaultSkin
End Sub

Public Function OtherHerder(str)
	If Isinstall(0)=1 Then Response.Write "系统暂时关闭。":Response.End
	OtherHerder=loadskins("other_header.txt")
	If UserID=Empty or UserWord=Empty then
		OtherHerder=Replace(OtherHerder,"$navigation",Split(loadskins("navigation.txt"),"§")(0))
	Else
		OtherHerder=Replace(OtherHerder,"$navigation",Split(loadskins("navigation.txt"),"§")(1)&"")
	End If
	OtherHerder=Replace(OtherHerder,"$title_l",Str)
	OtherHerder=Replace(OtherHerder,"$skins",DefaultSkin)
	Response.Write OtherHerder
End Function

Public Function WoHerder(str)
	If Isinstall(0)=1 Then Response.Write "系统暂时关闭。":Response.End
	WoHerder=loadskins("wo_header.txt")
	If UserID=Empty or UserWord=Empty then
		WoHerder=Replace(WoHerder,"$navigation",Split(loadskins("navigation.txt"),"§")(0))
	Else
		WoHerder=Replace(WoHerder,"$navigation",Split(loadskins("navigation.txt"),"§")(1)&"")
	End If
	WoHerder=Replace(WoHerder,"$title_l",Str)
	WoHerder=Replace(WoHerder,"$skins",DefaultSkin)
	Response.Write WoHerder
End Function

Public Function Herder(str)
	If Isinstall(0)=1 Then Response.Write "系统暂时关闭。":Response.End
	Herder=loadskins("header.txt")
	If UserID=Empty or UserWord=Empty then
		Herder=Replace(Herder,"$navigation",Split(loadskins("navigation.txt"),"§")(0))
	Else
		Herder=Replace(Herder,"$navigation",Split(loadskins("navigation.txt"),"§")(1)&"")
	End If
	Herder=Replace(Herder,"$title_l",Str)
	Herder=Replace(Herder,"$skins",DefaultSkin)
	Response.Write Herder
End Function

Public Function IndexLogin()
	If UserID=Empty or UserWord=Empty then
	    IndexLogin=loadskins("index_login.txt")
	Else
		IndexLogin=""
	End If
	IndexLogin=Replace(IndexLogin,"$skins",DefaultSkin)
End Function

Public Function Login()
	If UserID=Empty or UserWord=Empty then
	   Login=loadskins("login.txt")
	   Response.Write Login
	end if
End Function

Private Function getIP()
		Dim strIPAddr 
		If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then 
			strIPAddr = Request.ServerVariables("REMOTE_ADDR") 
		ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then 
			strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) 
			actforip=Request.ServerVariables("REMOTE_ADDR")
		ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then 
			strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
			actforip=Request.ServerVariables("REMOTE_ADDR")
		Else 
			strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
			actforip=Request.ServerVariables("REMOTE_ADDR")
		End If 
		getIP = CheckStr(Trim(Mid(strIPAddr, 1, 30)))
End Function 

'过滤输入
Public Function Checkstr(Str)
		If Isnull(Str) Then
			CheckStr = ""
			Exit Function 
		End If
		Str = Replace(Str,Chr(0),"")
		CheckStr = Replace(Str,"'","''")
End Function

'过滤发表文字
Public Function ChkBadWords(fString)
If fString="" then Exit Function
dim bwords,i_back
	fString=replace(fString,"'","''")
		for i_back = 0 to ubound(BadWords)
			 fString = Replace(fString, BadWords(i_back), string(len(BadWords(i_back)),"*")) 
		next    
		ChkBadWords = fString
End Function

'判断网址
Public Function ArChiveLink(str)
Dim SplitLink
ArChiveLink = LCase(RequesT.ServerVariables("QUERY_STRING"))
	SplitLink = Split(ArChiveLink,".")
		If Ubound(SplitLink) < 1 Then
		ArChiveLink = LCase(RequesT.ServerVariables("QUERY_STRING"))
		else
		ArChiveLink = SplitLink(str)
		End if
End Function

'判断外部数据
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

'载入皮肤
Public Function loadskins(Str)
Dim ShellFile,Shelltempfile,tempfile:Set ShellFile=Server.CreateObject("Scripting.FileSystemObject")
tempfile = Server.MapPath("skins/"&DefaultSkin&"/"&Str)
	IF not(ShellFile.FileExists(tempfile)) then
		loadskins="模板文件"&Str&"错误!"
	Else
		Set Shelltempfile=ShellFile.opentextfile(tempfile,1,True)
		loadskins=Shelltempfile.readall

		Set Shelltempfile=nothing
	End if
End Function

Public Function Footer()
Dim StrHtmlF
StrHtmlF=Caluoob.Loadskins("footer.txt")
Response.Write StrHtmlF
End Function

Public Function TimeToStr(DateTime)
	If DateTime="" then Exit Function  
	Dim DateYear,DateMonth,DateDay
	DateYear=Right(Year(DateTime),2)
	DateMonth=Month(DateTime)
	DateDay=Day(DateTime)
	If Len(DateMonth)<2 Then DateMonth="0"&DateMonth
	If Len(DateDay)<2 Then DateDay="0"&DateDay
	TimeToStr=DateYear&"-"&DateMonth&"-"&DateDay
End Function

'推荐用户
Function CommendUsers()
	Dim myrs
	Set myrs = Caluoob.Execute("select top 8 * from [cb_user] where Display=1 order by id desc")
		CommendUsers="<ul class=alist>"
		if myrs.Eof or myrs.bof then
	    CommendUsers=CommendUsers&"还没有任何信息!"
	    else
		Do while not myrs.eof
		CommendUsers=CommendUsers&"<li><a href=hi.asp?u="&myrs("id")&"><img src=face/"&myrs("userface")&"><span>"&myrs("nicknames")&"</span></a></li>"
		myrs.movenext
		If myrs.EOF Then Exit do
		loop
		CommendUsers=CommendUsers&"</ul>"
	myrs.close
	set myrs=nothing
	end if
End Function

'最新用户
Function NewUsers()
	Dim myrs
	Set myrs = Caluoob.Execute("select top 8 * from [cb_user] order by id desc")
		NewUsers="<ul class=alist>"
		if myrs.Eof or myrs.bof then
	    NewUsers=NewUsers&"还没有任何信息!"
	    else
		Do while not myrs.eof
		NewUsers=NewUsers&"<li><a href=hi.asp?u="&myrs("id")&"><img src=face/"&myrs("userface")&"><span>"&myrs("nicknames")&"</span></a></li>"
		myrs.movenext
		If myrs.EOF Then Exit do
		loop
		NewUsers=NewUsers&"</ul>"
	myrs.close
	set myrs=nothing
	end if
End Function

Public Function CheckNum(Str)
	If Str="" Then Exit Function
		If Session(Str)=False Then
			RanDomize Timer
			Session(Str)=Int(Rnd*9)+1
		End If
	CheckNum=Session(Str)
End Function

Sub ShowErr(str)
	Response.Redirect "Error.asp?Err="&server.URLEncode(str)&""
	Response.end
End Sub

End Class
%>