📄 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,rule
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,MyFaction,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)
MyGradeName=Temp(15)
MyGradePic=Temp(16)
MyBirthday=Temp(17)
MyRegTime=Temp(18)
MyLastTime=Temp(19)
MySmsSize=Temp(20)
MyRegIp=Temp(21)
MyLoginNum=Temp(22)
MyLastIp=Temp(23)
MyHonor=Temp(24)
MyFaction=Temp(25)
MyBankSave=Temp(26)
ClassSetting=Split(Temp(27),",")
ClassID=Temp(28)
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: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 Execute("Select NowDate From [YX_Config]")(0)<>FormatDateTime(NowBbsTime,2) then
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 if
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.GradeName,U.GradePic,U.Birthday,U.RegTime,U.LastTime,U.SmsSize,U.RegIp,U.LoginNum,U.LastIp,U.Honor,U.Faction,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>» <a onmouseover=""showmenu(event,'<div class=menuitems><a href=Sms.Asp>我的论坛信箱</a></div><div class=menuitems><a href=MyList.Asp?Action=MySay>我发表的主题</a></div><div class=menuitems><a href=Mylist.Asp?action=MyReply>我参与的主题</a></div><div class=menuitems><a href=MyList.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&"</b></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>用户列表</a></div><div class=menuitems><a href=Members.Asp?Action=admin>管理团队</a></div><div class=menuitems><a href=Online.Asp>在线情况</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 IsDel=False And 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
If YxBBs.BBSSetting(11)=1 Then
Dim NewMailNum
MenuInfo=MenuInfo&" <script language='JavaScript'>if(confirm('您的论坛信箱有新留言,是否要查看?')){window.location.href='Sms.Asp';}else{event.returnValue=false;};window.location.href='Sms.Asp';</SCRIPT>"
else
MenuInfo=MenuInfo&" ┆ <a href='Sms.Asp' target='_blank'><font color=#FF0000>新 留 言 ("&NewSmsNum&")</font></a>"
End If
Else
Session(CacheName & "MyReNewTime")=NowBbsTime
End If
End If
End If
If ClassID=1 Then MenuInfo=MenuInfo&" ┆ <a href="&YxBBs.BBSSetting(2)&"/ onmouseover=""showmenu(event,'<div class=menuitems><a href=Members.Asp?Action=log>论坛日志</a></div>')""><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
Cache.add NotFoundUserClassSetting,dateadd("n",2000,now)
ClassSetting=Split(Temp,",")
ClassID=6
End if
MenuInfo="<b>» 访 客</b> ┆ <a href=login.Asp>登 录</a> ┆ <a href=register.Asp>注 册</a> ┆ <a href=UserSetup.Asp?Action=ForgetPassword>找 回 密 码</a>"
MenuInfo=MenuInfo&" ┆ <a onmouseover=""showmenu(event,'"&SkinList()&"')"">风 格</a> ┆ <a onmouseover=""showmenu(event,'<div class=menuitems><a href=Search.Asp>论坛搜索</a></div><div class=menuitems><a href=Members.Asp>用户列表</a></div><div class=menuitems><a href=Members.Asp?Action=admin>管理团队</a></div><div class=menuitems><a href=Online.Asp>在线情况</a></div>')"">面 版</a>"
MenuInfo=MenuInfo&PlusMenu()&" ┆ <a href=help.Asp>帮 助</a> ┆ <a href=rss.asp"&rssurl&" target=_blank title=RSS订阅当前论坛><img border=0 src=images/rss.gif></a>"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -