📄 public_cls.asp
字号:
<%
Class Cls_Public
Public Fun,Template,Position,MenuInfo,Menu,Stats,Board_Rs,HeadLoad,rssurl
Public BBSName,BBSUrl,BBSClose,CloseInfo,CopyRight,BBSSetting,BuildDate,BbsTable,RegAutoSms,UploadType,AllEssayNum,NewUser,TopicNum,TodayNum,YsterdayNum,MaxOnlineNum,MaxOnlineTime,MaxEssayNum,UserNum,NowDate,BadName,BadEssay
Public CacheName,CookiesName,NowBBSTime,SkinID,UserOnlineNum,AllOnlineNum,Srule
Public TB,BoardID,BoardName,BoardSetting,BoardIntroduce,BoardTopicNum,BoardEssayNum,BoardAdmin,BoardGrade,BoardLock,BoardType,BoardTodayNum,BoardDepth,BoardChild,BoardParentStr,BoardRootID,BoardRoots,Brule
Public MyIp,MyName,MyPwd,MyID,MyHidden,MySessionID,FoundUser,CookiesDate,IsBoardAdmin
Public MySex,MyEssayNum,MyGoodNum,MyCoin,MyMark,MyHome,MyQQ,MyIsQQpic,MyPic,MyPicw,MyPich,MyGradeNum,MyGradeName,MyGradePic,MyBirthday,MyRegTime,MyLastTime,MySmsSize,MyRegIp,MyLoginNum,MyLastIp,MyHonor,MyBankSave,ClassSetting,ClassID
Private SQL,Rs,Temp,SysConfig,MyInfo
Private Sub Class_Initialize()
Set Fun = New Cls_Fun
Set Template = New Cls_SkinTemplates
MyIp=Userip()
CacheName="YxBBs_"&Replace(Replace(Replace(Server.MapPath("Default.Asp"),"Default.Asp",""),":",""),"\","")
CookiesName=LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"),Split(Request.ServerVariables("SCRIPT_NAME"),"/")(ubound(Split(Request.ServerVariables("SCRIPT_NAME"),"/"))),""))
MyName=Replace(Request.Cookies(CookiesName)("MyName"),"'","")
MyPwd=Replace(Request.Cookies(CookiesName)("MyPwd"),"'","")
MyID=Trim(Request.Cookies(CookiesName)("MyID"))
MyHidden=Request.Cookies(CookiesName)("MyHidden")
CookiesDate=Request.Cookies(CookiesName)("CookiesDate")
TB = CheckNum(Request.querystring("TB"))
BoardID = CheckNum(Request.querystring("BoardID"))
SkinID=Request.Cookies(CookiesName&"SkinID")
NowBBSTime=FormatDateTime(Now()+Timeset/24,0)'服务器时间
MySessionID=Session.SessionID
FoundUser=False
End Sub
Private Sub Class_Terminate()
Set Fun = Nothing
Set Rs = Nothing
Set Template = Nothing
If IsObject(Conn) Then
Conn.Close
Set Conn = Nothing
End If
End Sub
'检验数据表
Private Function GetSqlTable(Str)
Dim AllTable,i
Temp=""
AllTable=Split(BbsTable(0),",")
For i=0 to uBound(AllTable)
If Str= Int(AllTable(i)) Then Temp=Str:Exit For
Next
If Temp="" Then Str=BbsTable(1)
GetSqlTable=Str
End Function
'读取IP
Private Function UserIP()
Dim GetClientIP
GetClientIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If GetClientIP = "" or isnull(GetClientIP) or isempty(GetClientIP) Then
GetClientIP = Request.ServerVariables("REMOTE_ADDR")
End if
If Instr(GetClientIP,"'")>0 Then GetClientIP="0.0.0.0"
Userip = GetClientIP
End function
Private Sub MyDataInfo()
Temp=Session(CacheName & "MyInfo")
If LCase(MyName)<>LCase(Temp(1)) Then
YxBBs.MakeCookiesEmpty()
YxBBs.Error("获取用户参数错误!")
End If
MySex=Temp(3)
MyEssayNum=Temp(4)
MyGoodNum=Temp(5)
MyCoin=Temp(6)
MyMark=Temp(7)
MyHome=Temp(8)
MyQQ=Temp(9)
MyIsQQpic=Temp(10)
MyPic=Temp(11)
MyPicw=Temp(12)
MyPich=Temp(13)
MyGradeNum=Temp(14)
MyBirthday=Temp(15)
MyRegTime=Temp(16)
MyLastTime=Temp(17)
MySmsSize=Temp(18)
MyRegIp=Temp(19)
MyLoginNum=Temp(20)
MyLastIp=Temp(21)
MyHonor=Temp(22)
MyBankSave=Temp(23)
ClassSetting=Split(Temp(24),",")
ClassID=Temp(25)
SET Rs=YxBBs.Execute("Select GradeName,GradePic From [YX_UserGrade] where GradeNum="&Temp(14)&"")
MyGradeName=Rs(0)
MyGradePic=Rs(1)
FoundUser=True
End Sub
Public Sub SystemConfig()
If Not IsNumeric(MySessionID) Then Error("获取参数错误!")
Fun.LockedIpCheck()
Cache.Name="Config"
If Cache.Valid then
SysConfig=Split(Cache.Value,"<$><$>")
Else
Set Rs = Execute("Select Top 1 BBSName,BBSUrl,BBSClose,CloseInfo,CopyRight,Info,BuildDate,RegAutoSms,UploadType,AllEssayNum,TopicNum,TodayNum,YsterdayNum,MaxOnlineNum,MaxOnlineTime,MaxEssayNum,NewUser,UserNum,NowDate,BadName,BadEssay,BbsTable,SkinID,Srule From[YX_Config]")
SqlNum=SqlNum+1
Temp = Rs.GetString(,1, "<$><$>","","")
Rs.Close
Cache.add Temp,dateadd("n",2000,NowBBSTime)
SysConfig = Split(Temp,"<$><$>")
End If
BBSName=SysConfig(0)
BBSUrl=SysConfig(1)
BBSClose=SysConfig(2)
CloseInfo=SysConfig(3)
CopyRight=SysConfig(4)
BBSSetting=Split(SysConfig(5),"|")
BuildDate=SysConfig(6)
RegAutoSms=SysConfig(7)
UploadType=Split(SysConfig(8),"@@")
AllEssayNum=SysConfig(9)
TopicNum=SysConfig(10)
TodayNum=SysConfig(11)
YsterdayNum=SysConfig(12)
MaxOnlineNum=SysConfig(13)
MaxOnlineTime=SysConfig(14)
MaxEssayNum=SysConfig(15)
NewUser=SysConfig(16)
UserNum=SysConfig(17)
NowDate=SysConfig(18)
BadName=SysConfig(19)
BadEssay=Split(SysConfig(20),"@@")
BbsTable=Split(SysConfig(21),"|")
If BBSClose then
If Instr(Lcase(Request("url")),""&YxBBs.BBSSetting(2)&"/")=0 Then Response.Write(""&CloseInfo&"<br><br><br><a href="&YxBBs.BBSSetting(2)&"/index.asp target='_blank'><b><font size=2 color=red>管理员登陆</font><b></font>"):Response.end
End If
If Int(TB)<>Int(BbsTable(1)) Then TB=GetSqlTable(TB)
If Datediff("d",FormatDateTime(NowBbsTime,2),NowDate)<>0 Then UpdateToday
If Not IsNumeric(SkinID) or SkinID="0" Then
SkinID=SysConfig(22)
Response.Cookies(CookiesName&"SkinID")=SkinID
End If
Srule=SysConfig(23)
Template.SkinID=SkinID
Template.OpenFile()
Position="<a href=Default.Asp onmouseover=""showmenu(event,'"&BoardList(1)&"')"">"&BBSName&"</a>"
End Sub
Private Sub UpdateToday()
If DateDiff("d",Execute("Select NowDate From [YX_Config]")(0), NowBbsTime)=0 Then Exit Sub
Cache.name="Config":Cache.clean()
Cache.name="BoardInfo":Cache.clean()
Temp=Execute("select Todaynum from [YX_Config]")(0)
Execute("update [YX_config] set NowDate='"&FormatDateTime(NowBbsTime,2)&"',Todaynum=0,YsterdayNum="&Temp&"")
Execute("update [YX_Board] set Todaynum=0")
End Sub
Public Sub CheckUser()
If Not IsNumeric(MyID) Or MyID="" Or MyName="" Or MyPwd="" Then
FoundUser=False
UserLoginFalse()
Else
UserLoginTrue()
End If
End Sub
'用户信息
Public Sub UserLoginTrue()
Dim MenuOnline,NewSmsNum,AddTime
If Not IsArray(Session(CacheName & "MyInfo")) Then
SQL="Select U.ID,U.Name,U.Password,U.Sex,U.EssayNum,U.GoodNum,U.Coin,U.Mark,U.Home,U.QQ,U.IsQQpic,U.Pic,U.Picw,U.Pich,U.GradeNum,U.Birthday,U.RegTime,U.LastTime,U.SmsSize,U.RegIp,U.LoginNum,U.LastIp,U.Honor,U.BankSave,C.ClassSetting,C.ClassID From YX_user As U inner join YX_UserClass As C on U.ClassID=C.ClassID where U.ID="&MyID&" And U.Name='"&MyName&"' And U.Password='"&MyPwd&"'"
Set Rs=Execute(SQL)
If Rs.Eof Or Rs.Bof Then
MakeCookiesEmpty()
FoundUser=False
Else
If lcase(MyName)<>lcase(Rs(1)) Or MyPwd<>Rs(2) Then
FoundUser=False
Else
MyInfo=Rs.GetString(,1, "<$><$>","","")
Rs.CLose
Session(CacheName & "MyInfo")=Split(MyInfo,"<$><$>")
MyDataInfo()
End If
End If
If Int(MyID)<>Int(Session(CacheName & "MyInfo")(0)) or LCase(MyName)<>LCase(Session(CacheName & "MyInfo")(1)) Or MyPwd<>Session(CacheName & "MyInfo")(2) Then
MakeCookiesEmpty()
Error("非法伪造Cookie对论坛进行攻击")
end if
Else
MyDataInfo()
End If
If Request.Cookies(CookiesName)("onlinetime")=Empty Then
Response.Cookies(CookiesName)("onlinetime")=NowBbsTime
ElseIf DateDiff("s",Request.Cookies(CookiesName)("onlinetime"),NowBbsTime)>30 then
AddTime=DateDiff("s",Request.Cookies(CookiesName)("onlinetime"),NowBbsTime)
Execute("update [YX_User] Set lasttime='"&NowBbsTime&"',TimeSum=TimeSum+"&AddTime&" where Name='"&MyName&"'")
Response.Cookies(CookiesName)("onlinetime")=NowBbsTime
End If
rssurl="?BoardID="&BoardID&""
if rssurl="?BoardID=0" then
rssurl=""
end if
If MyHidden="" then MyHidden=1
If MyHidden=1 then MenuOnline="<a href=cookies.Asp?Action=Online>隐身</a>"
If MyHidden=2 then MenuOnline="<a href=cookies.Asp?Action=Online>上线</a>"
MenuInfo="» <b><font Color=red>WelCome</font></b> [<a onmouseover=""showmenu(event,'<div class=menuitems><a href=Sms.Asp>论坛信箱</a></div><div class=menuitems><a href=showList.Asp?Action=MySay>我的主题</a></div><div class=menuitems><a href=showlist.Asp?action=MyReply>我的回复</a></div><div class=menuitems><a href=showList.Asp?Action=MyGood>我的精华</a></div><div class=menuitems><a href=UserSetup.Asp?Action=MyInfo>修改资料</a></div><div class=menuitems><a href=usersetup.Asp?action=mypassword>修改密码</a></div>')"" style='CURSOR: hand;'>"&MyName&"</a> - "&MenuOnline&"]"
MenuInfo=MenuInfo&" ┆ <a onmouseover=""showmenu(event,'<div class=menuitems><a href=showList.Asp?Action=new>论坛新帖</a></div><div class=menuitems><a href=Search.Asp>论坛搜索</a></div><div class=menuitems><a href=Members.Asp?Action=top>用户排行</a></div><div class=menuitems><a href=Members.Asp?Action=admin>管理团队</a></div><div class=menuitems><a href=Members.Asp?Action=log>论坛日志</a></div>')"">菜单</a> ┆ <a onmouseover=""showmenu(event,'"&SkinList()&"')"">风格</a>"
MenuInfo=MenuInfo&PlusMenu()&" ┆ <a href=help.Asp>帮助</a>"
If Session(CacheName & "LastTime")="" Then
Session(CacheName & "LastTime")=MyLastTime
Execute("Update [YX_user] set Lasttime='"&NowBbsTime&"' where Name='"&MyName&"'")
End If
If Session(CacheName & "MyReNewTime")="" Or DateDiff("n",Session(CacheName & "MyRenewTime"),NowBbsTime) > 2 Then'3分钟
Set Rs=Execute("select NewSmsNum from [YX_user] where Name='"&MyName&"' And Password='"&MyPwd&"'")
If Rs.Eof Then
MakeCookiesEmpty()
Error("必须登录论坛后才能进行操作!")
Else
NewSmsNum=Rs(0)
End If
Rs.Close
If Instr(Lcase(Request("url")),"sms.asp")=0 Then
If NewSmsNum>0 then
Dim NewMailNum
%>
<SCRIPT Src=Inc/Sms.js></SCRIPT>
<DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX: 99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3">
<TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 12px;COLOR: #0f2c8c" vAlign=center width=30 height=24></TD>
<TD style="FONT-WEIGHT: normal; FONT-SIZE: 9pt; COLOR: #1f336b; PADDING-TOP: 4px" vAlign=center width="100%"> 短消息提示:</TD>
<TD PADDING-TOP: 2px" vAlign=center align=right width=19><IMG title=关闭 style="CURSOR: hand" onclick=closeDiv() hspace=3 src="images/msgClose.jpg"></TD>
</TR>
<TR>
<TD style="PADDING-RIGHT: 1px; PADDING-BOTTOM: 1px" colSpan=3 height=90>
<DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 9pt; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">您有 <font color="red"><%=NewSmsNum%> 新</font> 的短消息
<BR><BR>
<DIV align=center style="word-break:break-all"><a href="sms.asp">点击查看这条新信息.</a></DIV>
</DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<%
Else
Session(CacheName & "MyReNewTime")=NowBbsTime
End If
End If
End If
If ClassID=1 Then MenuInfo=MenuInfo&" ┆ <a href="&YxBBs.BBSSetting(2)&"/index.asp><font color=""#FF0000"">管理</font></a>"
MenuInfo=MenuInfo&" ┆ <a href=Login.Asp?Action=Exit>退出</a> ┆ <a href=rss.asp"&rssurl&" target=_blank title=RSS订阅当前论坛><img border=0 src=images/rss.gif></a>"
End Sub
Private Sub UserLoginFalse()
Dim NotFoundUserClassSetting
Cache.Name = "NotFoundUserClassSetting"
rssurl="?BoardID="&BoardID&""
if rssurl="?BoardID=0" then
rssurl=""
end if
If Cache.valid then
ClassSetting=Split(Cache.Value,",")
ClassID=6
Else
Temp = Execute("Select ClassSetting from YX_UserClass where ClassID=6")(0)
SqlNum=SqlNum+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -