%
'!--#include file="inc/dv_clsother.asp"--
Rem 除首页外通用函数
'Dvbbs.Board_Setting(40)是否继承上级版主,顺带取出上级论坛版面信息
'最多只取向上的10级版面信息
'输出导航菜单字串
If Request("poststyle")="1" Then
Dvbbs.ErrType=1
End If
Sub CheckBoardInfo()
Dim parentstr,parentboard,XpathSQL,i,Maxdepth,Node,NavStr
parentstr = Application(Dvbbs.CacheName&"_boardlist").documentElement.selectSingleNode("board[@boardid='"&Dvbbs.BoardID&"']/@parentstr").text
parentboard=Split(parentstr,",")
If Dvbbs.UserID > 0 and Not Dvbbs.BoardMaster And CLng(Dvbbs.UserGroupID)=3 Then
If Dvbbs.Board_Setting(40)="1" And Dvbbs.BoardParentID > 0 Then
For i=0 to UBound(parentboard)
If parentboard(i) <> "0" Then XpathSQL=XpathSQL &" or @boardid = " & parentboard(i)
Next
End If
XpathSQL="boardmaster[@boardid = "& Dvbbs.Boardid & XpathSQL &"]/master[ . ='"& Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@username").text &"']"
Dvbbs.BoardMaster=Not Application(Dvbbs.CacheName&"_boardmaster").documentElement.selectSingleNode(XpathSQL) Is Nothing
End If
If Dvbbs.BoardParentID > 0 Then
Maxdepth=9
If Ubound(parentboard) < Maxdepth+1 Then
Maxdepth=Ubound(parentboard)
End If
For i=0 to Maxdepth
If parentboard(i) <> "0" Then
Set Node=Application(Dvbbs.CacheName&"_boardlist").documentElement.selectSingleNode("board[@boardid='"& parentboard(i) &"']")
If Node Is Nothing Then Exit For
If i=0 Then
NavStr=" "& Node.selectSingleNode("@boardtype").text &" "
Else
NavStr=NavStr& "→ "& Node.selectSingleNode("@boardtype").text &" "
End If
End If
Next
End If
Dvbbs.BoardInfoData=NavStr
GetBoardPermission()
End Sub
Sub GetBoardPermission()
Dim Rs,IsGroupSetting
If Not Application(Dvbbs.CacheName &"_boarddata_" & Dvbbs.Boardid).documentElement.selectSingleNode("boarddata/@isgroupsetting") is nothing Then IsGroupSetting = Application(Dvbbs.CacheName &"_boarddata_" & Dvbbs.Boardid).documentElement.selectSingleNode("boarddata/@isgroupsetting").text
If IsGroupSetting <> "" Then
IsGroupSetting = "," & IsGroupSetting & ","
If InStr(IsGroupSetting,"," & Dvbbs.UserGroupID & ",")>0 Then
Set Rs=Dvbbs.Execute("Select PSetting From Dv_BoardPermission Where Boardid="&Dvbbs.Boardid&" And GroupID="&Dvbbs.UserGroupID)
If Not (Rs.Eof And Rs.Bof) Then
Dvbbs.GroupSetting = Split(Rs(0),",")
End If
Set Rs=Nothing
End If
If Dvbbs.UserID>0 And InStr(IsGroupSetting,",0_"&Dvbbs.UserID&",")>0 Then
Set Rs=Dvbbs.execute("Select Uc_Setting From Dv_UserAccess Where Uc_Boardid="&Dvbbs.BoardID&" And uc_UserID="&Dvbbs.Userid)
If Not(Rs.Eof And Rs.Bof) Then
Dvbbs.UserPermission=Split(Rs(0),",")
Dvbbs.GroupSetting = Split(Rs(0),",")
Dvbbs.FoundUserPer=True
End If
Set Rs=Nothing
If Dvbbs.GroupSetting(70)="1" Then
Dvbbs.Master = True
Else
Dvbbs.Master = False
End If
End If
End If
If Not Dvbbs.BoardMaster Then Chkboardlogin()
End Sub
Rem 能否进入论坛的判断
Public Sub Chkboardlogin()
If Dvbbs.Board_Setting(1)="1" And Dvbbs.GroupSetting(37)="0" Then Dvbbs.AddErrCode(26)
If Dvbbs.GroupSetting(0)="0" Then Dvbbs.AddErrCode(27)
'访问论坛限制(包括文章、积分、金钱、魅力、威望、精华、被删数、注册时间)
Dim BoardUserLimited
BoardUserLimited = Split(Dvbbs.Board_Setting(54),"|")
If Ubound(BoardUserLimited)=8 Then
'文章
If Trim(BoardUserLimited(0))<>"0" And IsNumeric(BoardUserLimited(0)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
本版面设置了用户发贴最少为 "&BoardUserLimited(0)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text)本版面设置了用户发贴最少为 "&BoardUserLimited(0)&" 才能进入&action=OtherErr"
End If
'积分
If Trim(BoardUserLimited(1))<>"0" And IsNumeric(BoardUserLimited(1)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户积分最少为 "&BoardUserLimited(1)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text)本版面设置了用户积分最少为 "&BoardUserLimited(1)&" 才能进入&action=OtherErr"
End If
'金钱
If Trim(BoardUserLimited(2))<>"0" And IsNumeric(BoardUserLimited(2)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户金钱最少为 "&BoardUserLimited(2)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text)本版面设置了用户金钱最少为 "&BoardUserLimited(2)&" 才能进入&action=OtherErr"
End If
'魅力
If Trim(BoardUserLimited(3))<>"0" And IsNumeric(BoardUserLimited(3)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户魅力最少为 "&BoardUserLimited(3)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text)本版面设置了用户魅力最少为 "&BoardUserLimited(3)&" 才能进入&action=OtherErr"
End If
'威望
If Trim(BoardUserLimited(4))<>"0" And IsNumeric(BoardUserLimited(4)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户威望最少为 "&BoardUserLimited(4)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpower").text)本版面设置了用户威望最少为 "&BoardUserLimited(4)&" 才能进入&action=OtherErr"
End If
'精华
If Trim(BoardUserLimited(5))<>"0" And IsNumeric(BoardUserLimited(5)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户精华最少为 "&BoardUserLimited(5)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userisbest").text)本版面设置了用户精华最少为 "&BoardUserLimited(5)&" 才能进入&action=OtherErr"
End If
'删贴
If Trim(BoardUserLimited(6))<>"0" And IsNumeric(BoardUserLimited(6)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户被删贴少于 "&BoardUserLimited(6)&" 才能进入&action=OtherErr"
If Clng(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userdel").text)>Clng(BoardUserLimited(6)) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户被删贴少于 "&BoardUserLimited(6)&" 才能进入&action=OtherErr"
End If
'注册时间
If Trim(BoardUserLimited(7))<>"0" And IsNumeric(BoardUserLimited(7)) Then
If Dvbbs.UserID = 0 Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=本版面设置了用户注册时间大于 "&BoardUserLimited(7)&" 分钟才能进入&action=OtherErr"
If DateDiff("s",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@joindate").text,Now)本版面设置了用户注册时间大于 "&BoardUserLimited(7)&" 分钟才能进入&action=OtherErr"
End If
End If
'认证版块判断Board_Setting(2)
' If Dvbbs.Board_Setting(2)="1" Then
' Dim Get_BoardUser_Money,Canlogin,Boarduser,i,BoardUser_Money
' Get_BoardUser_Money = False
' If Clng(Dvbbs.Board_Setting(62))>0 Or Clng(Dvbbs.Board_Setting(63))>0 Then Get_BoardUser_Money = True
' Canlogin = False
' If Dvbbs.UserID=0 Then
' Dvbbs.AddErrCode(24)
' Dvbbs.showerr()
' Else
' If Not Application(Dvbbs.CacheName &"_boarddata_" & Dvbbs.Boardid).documentElement.selectSingleNode("boarddata/@boarduser") Is Nothing Then boarduser=Application(Dvbbs.CacheName &"_boarddata_" & Dvbbs.Boardid).documentElement.selectSingleNode("boarddata/@boarduser").text
' If Boarduser="" Then
' Canlogin = False
' Else
' Boarduser=Split(Boarduser,",")
' For i = 0 To Ubound(Boarduser)
' If Get_BoardUser_Money Then
' BoardUser_Money = Split(Boarduser(i),"=")
' If Trim(Lcase(BoardUser_Money(0))) = Trim(Lcase(Dvbbs.MemberName)) Then
' '修改判断支付金币或点券进入版面的有效期 2004-8-29 Dv.Yz
' If Not DateDiff("d",BoardUser_Money(1),Now()) > Cint(Dvbbs.Board_Setting(64))*30 Then
' Canlogin = True
' Exit For
' End If
' End If
' Else
' If Trim(Lcase(Boarduser(i))) = Trim(Lcase(Dvbbs.MemberName)) Then
' Canlogin = True
' Exit For
' End If
' End If
' Next
' End If
' End If
' If Get_BoardUser_Money And Instr(Lcase(Dvbbs.ScriptName),"pay_boardlimited")=0 And (Not Canlogin) Then Response.Redirect "pay_boardlimited.asp?boardid=" & Dvbbs.BoardID
' If Instr(Lcase(Dvbbs.ScriptName),"pay_boardlimited")=0 And (Not Canlogin) Then
' Dvbbs.AddErrCode(25)
' End If
' End If
' Dvbbs.showerr()
End Sub
'得到论坛文字广告位部分内容,PageID=0为首页,=1为帖子列表页面,=2为帖子内容页面
Rem 论坛文字广告已经由 Sub 改为 Function 需要Response.Write 输出 2007-10-10 By Dv.唧唧
Function GetForumTextAd(PageID)
If Dvbbs.Forum_ads(12) = "1" Then
Select Case PageID
Case 0
Case 1
If Not(Dvbbs.Forum_ads(15) = "0" Or Dvbbs.Forum_ads(15) = "2") Then Exit Function
Case 2
If Not((Dvbbs.Forum_ads(15) = "1" Or Dvbbs.Forum_ads(15) = "2")) Or (Dvbbs.Forum_ads(15) = "3") Then Exit Function
Case Else
Exit Function
End Select
Dvbbs.Name = "Text_ad_"&Dvbbs.BoardID&"_"& Dvbbs.SkinID
If Dvbbs.ObjIsEmpty() Then LoardTextAd()
GetForumTextAd = Dvbbs.Value
End If
End Function
Sub LoardTextAd()
Dim XmlAds,Adstext,textvalue,XMLStyle,proc
If IsObject(Application(Dvbbs.CacheName & "_TextAdservices")) Then
Set XmlAds=Application(Dvbbs.CacheName & "_TextAdservices").cloneNode(True)
Else
Set XmlAds=Dvbbs.CreateXmlDoc("Msxml2.FreeThreadedDOMDocument" & MsxmlVersion)
XmlAds.appendChild(XmlAds.createElement("xml"))
End If
Adstext=split(Dvbbs.Forum_ads(16),"#####")
If Dvbbs.Forum_ads(17)="" Or Not IsNumeric(Dvbbs.Forum_ads(17)) Then Dvbbs.Forum_ads(17)=4
Dvbbs.Forum_ads(17)=Abs(Dvbbs.Forum_ads(17))
If Dvbbs.Forum_ads(17)=0 Then Dvbbs.Forum_ads(17)=4
XmlAds.documentElement.attributes.setNamedItem(XmlAds.createNode(2,"tdcount","")).text=Dvbbs.Forum_ads(17)
For Each textvalue In adstext
XmlAds.documentElement.appendChild(XmlAds.createNode(1,"text","")).text=textvalue
Next
If not IsObject(Application(Dvbbs.CacheName & "_showtextads_"& Dvbbs.SkinID)) Then
Set Application(Dvbbs.CacheName & "_showtextads_"& Dvbbs.SkinID)=Dvbbs.iCreateObject("Msxml2.XSLTemplate" & MsxmlVersion)
Set XMLStyle=Dvbbs.CreateXmlDoc("Msxml2.FreeThreadedDOMDocument" & MsxmlVersion)
XMLStyle.loadxml Dvbbs.mainhtml(22)
Application(Dvbbs.CacheName & "_showtextads_"& Dvbbs.SkinID).stylesheet=XMLStyle
End If
Set proc = Application(Dvbbs.CacheName & "_showtextads_"& Dvbbs.SkinID).createProcessor()
proc.input = XmlAds
proc.transform()
Dvbbs.Name = "Text_ad_"&Dvbbs.BoardID&"_"& Dvbbs.SkinID
Dvbbs.Value=proc.output
Set XmlAds=Nothing
Set proc=Nothing
End Sub
Sub LoadBoardNews_Paper()
Dim Rs,node
Set Rs=Dvbbs.Execute("select S_ID,S_BoardID,S_UserName,S_Title,S_Addtime From Dv_Smallpaper Order By S_ID DESC")
If Not Rs.EOF Then
Set Application(Dvbbs.CacheName & "_smallpaper")=Dvbbs.RecordsetToxml(rs,"smallpaper","xml")
For Each Node in Application(Dvbbs.CacheName & "_smallpaper").documentElement.SelectNodes("smallpaper")
Node.selectSingleNode("@s_username").text=Dvbbs.ChkBadWords(Node.selectSingleNode("@s_username").text)
Node.selectSingleNode("@s_title").text=Server.HTMLEnCode(Dvbbs.ChkBadWords(Node.selectSingleNode("@s_title").text))
Next
Else
Set Application(Dvbbs.CacheName & "_smallpaper")=Dvbbs.CreateXmlDoc("Msxml2.FreeThreadedDOMDocument" & MsxmlVersion)
Application(Dvbbs.CacheName & "_smallpaper").appendChild(Application(Dvbbs.CacheName & "_smallpaper").createElement("xml"))
End If
End Sub
%>
<%
Dim parameter
'以下定义的变量在Dv_ubbcode.asp页面会用到
Dim replyid_a,AnnounceID,TotalUseTable,AnnounceID_a,RootID_a
Dim T_GetMoneyType,EmotPath
Dim UserName:UserName=Dvbbs.Membername
Dim IsThisBoardMaster '确定当前用户是否本版版主,防止下面的操作影响到 Dvbbs.BoardMaster导致出错
IsThisBoardMaster = Dvbbs.BoardMaster
Dim PostStyle,ajaxPost
PostStyle = Request.Form("poststyle")
'ajaxPost = CInt(Request.Form("ajaxPost"))
'
'If ajaxPost=1 Then
' ajaxPost = True
'Else
ajaxPost = False
'End If
If Dvbbs.BoardID < 1 Then
Response.Write "[err]BoardID参数错误[/err]" 'zzcity add
'Response.Write "参数错误"
Dvbbs.PageEnd()
Response.End
End If
Dim MyPost
Dim postbuyuser,bgcolor,abgcolor,FormID
Dvbbs.Loadtemplates("post")
Set MyPost = New Dvbbs_Post
Dvbbs.Stats = MyPost.ActionName
'EmotPath=Split(Dvbbs.Forum_emot,"|||")(0) 'em心情路径
'If Not ajaxPost Then
' If PostStyle = "1" Then
' Dvbbs.Head()
' Dvbbs.ErrType=1
' Else
' Dvbbs.Nav()
' Dvbbs.Head_var 1,Application(Dvbbs.CacheName&"_boardlist").documentElement.selectSingleNode("board[@boardid='"&Dvbbs.BoardID&"']/@depth").text,"",""
' End If
'End if
MyPost.Save_CheckData
Set MyPost = Nothing
'If Not ajaxPost Then Dvbbs.Footer
Dvbbs.PageEnd()
Class Dvbbs_Post
Public Action,ActionName,Star,Page,IsAudit,ToAction,TopicMode,Reuser
Private ReplyID,ParentID,RootID,Topic,Content,char_changed,signflag,mailflag,iLayer,iOrders
Private TopTopic,IsTop,LastPost,LastPost_1,UpLoadPic_n,ihaveupfile,smsuserlist,upfileinfo
Private UserName,UserPassWord,UserPost,GroupID,UserClass,DateAndTime,DateTimeStr,Expression,MyLastPostTime,LastPostTimes
Private LockTopic,MyLockTopic,MyIsTop,MyIsTopAll,MyTopicMode,Child
Private CanLockTopic,CanTopTopic,CanTopTopic_a,CanEditPost,Rs,SQL,i,IsAuditcheck
Private vote,votetype,votenum,votetimeout,voteid,isvote,ErrCodes
Private GetPostType,ToMoney,UseTools,ToolsBuyUser,GetMoneyType,Tools_UseTools,Tools_LastPostTime,ToolsInfo,ToolsSetting
Private tMagicFace,iMagicFace,tMagicMoney,tMagicTicket,FoundUseMagic,isAlipayTopic
Private Sub Class_Initialize()
ErrCodes = ""
Dvbbs.ErrCodes=""
'管理员及该版版主允许在锁定论坛发帖
' If Dvbbs.Board_Setting(0)="1" And Not (Dvbbs.Master or Dvbbs.Boardmaster) Then
' If ajaxpost Then
' Call showAjaxMsg(0,"锁定论坛,只对管理员及该版版主开放!","","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&action=lock&boardid="&dvbbs.boardID&""
' Response.redirect parameter
' End If
' End If
' If Dvbbs.IsReadonly() And Not Dvbbs.Master Then
' If ajaxpost Then
' Call showAjaxMsg(0,"论坛只读,只对管理员开放!","","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&action=readonly&boardid="&dvbbs.boardID&""
' Response.redirect parameter
' End If
' End If
' Action = Request("Action")
Action = "snew" 'zzcity add
TotalUseTable = Dvbbs.NowUseBBS
' Select Case Action
' Case "snew"
Action = 5
ActionName = template.Strings(1)
' If Dvbbs.GroupSetting(3)="0" Then Dvbbs.AddErrCode(70)
' Case "sre"
' Action = 6
' ActionName = template.Strings(3)
' 'If Dvbbs.GroupSetting(5)="0" then Dvbbs.AddErrCode(71)
' Case "svote"
' Action = 7
' ActionName = template.Strings(5)
' If Dvbbs.GroupSetting(8)="0" then Dvbbs.AddErrCode(56)
' Case "sedit"
' Action = 8
' ActionName = template.Strings(7)
' Case Else
' Action = 1
' ActionName = template.Strings(0)
' End Select
Star = Request("star")
If Star = "" Or Not IsNumeric(Star) Then Star = 1
Star = Clng(Star)
Page = Request("page")
If Page = "" Or Not IsNumeric(Page) Then Page = 1
Page = Clng(Page)
'IsAudit = Cint(Dvbbs.Board_Setting(3))
IsAudit=0
Reuser = False '此变量标识是否更名发贴
FoundUseMagic = False
End Sub
Public Function CheckFormID(id)
CheckFormID=false
Dim i,Str
For i=1 to Len(id)
Str=Str & Asc(Mid(id,i,1))-97
Next
If Session.SessionID=Str Then
CheckFormID=True
End If
End Function
Rem 改写ShowErr过程 ajax模式下 不跳转 By Dv.唧唧 于 火星
' Sub ShowErr("")
Sub ShowErr(ErrCodes)
' If ajaxpost And Dvbbs.ErrCodes<>"" Then
' Call showAjaxMsg(0,getErrCodeMsg(),"","")
' Else
' Dvbbs.ShowErr()
' End If
if ErrCodes<>"" then'zzcity add
Response.Write "[err]"&ErrCodes&"[/err]"
Dvbbs.PageEnd()
response.End()
elseif Dvbbs.ErrCodes<>"" then
Response.Write "[err]"&Dvbbs.ErrCodes&"[/err]"
Dvbbs.PageEnd()
response.End()
end if
End Sub
'通用判断
Public Function Chk_Post()
'FormID=Request("Dvbbs")
'If FormID="" Then FormID=Request.Cookies("Dvbbs"):Response.Cookies("Dvbbs")=""
'If Not CheckFormID(FormID) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您提交的参数错误&action=OtherErr"
' If Dvbbs.Board_Setting(43)="1" Then Dvbbs.AddErrCode(72)
' If Dvbbs.Board_Setting(1)="1" and Dvbbs.GroupSetting(37)="0" Then Dvbbs.AddErrCode(26)
' If Dvbbs.UserID>0 Then
' If Clng(Dvbbs.GroupSetting(52))>0 And DateDiff("s",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@joindate").text,Now)"&Replace(template.Strings(21),"{$timelimited}",Dvbbs.GroupSetting(52))&"&action=OtherErr"
' Response.redirect parameter
' End if
'
' End If
' If Dvbbs.GroupSetting(62)<>"0" And Not Action = 8 Then
' If Clng(Dvbbs.GroupSetting(62))<=Clng(Dvbbs.UserToday(0)) Then
' If ajaxPost Then
' Call showAjaxMsg(0,Replace(template.Strings(27),"{$topiclimited}",Dvbbs.GroupSetting(62)),"","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&Replace(template.Strings(27),"{$topiclimited}",Dvbbs.GroupSetting(62))&"&action=OtherErr"
' Response.redirect parameter
' End if
' End If
' End If
' End If
' If Dvbbs.GroupSetting(3)="0" And (Action = 5 Or Action = 7) Then
' If ajaxPost Then
' Call showAjaxMsg(0,template.Strings(28),"","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&template.Strings(28)&"&action=OtherErr"
' End if
' End if
'If Dvbbs.GroupSetting(5)="0" And (Action = 6) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&template.Strings(29)&"&action=OtherErr"
End Function
'返回判断和参数
Public Function Get_M_Request()
AnnounceID = Request("ID")
If AnnounceID = "" Or Not IsNumeric(AnnounceID) Then Dvbbs.AddErrCode(30)
if Dvbbs.ErrCodes<>"" then ShowErr("非法的帖子参数")
AnnounceID = cCur(AnnounceID)
End Function
'检查提交来源
Public Sub CheckfromScript()
' If Not Dvbbs.ChkPost() Then Dvbbs.AddErrCode(16):ShowErr("")
' 'If CStr(Request.Cookies("Dvbbs"))=CStr(Dvbbs.Boardid) Then Dvbbs.AddErrCode(30):ShowErr("") '非法的贴子参数。
' If (Not ChkUserLogin) And (Action = 5 Or Action = 6 Or Action = 7) And Dvbbs.UserID>0 Then Dvbbs.AddErrCode(12):ShowErr("")
End Sub
'判断发贴时间间隔
Private Sub CheckpostTime()
If Dvbbs.Board_Setting(30)="1" Then
' If IsDate(Session(Dvbbs.CacheName & "posttime")) Then
' If DateDiff("s",Session(Dvbbs.CacheName & "posttime"),Now())"+""&Replace(template.Strings(33),"{$PostTimes}",Dvbbs.Board_Setting(31))&"&action=OtherErr"
' Response.redirect parameter
' End if
' End If
' End If
Session(Dvbbs.CacheName & "posttime")=Now()
End If
End Sub
'检查用户身份
Public Function ChkUserLogin()
ChkUserLogin=False
'取得发贴用户名和密码
' If Dvbbs.UserID=0 Then
' UserName="客人"
' Else
' If ajaxPost Then
' UserName=Dvbbs.Checkstr(unescape(Request.Form("username")))
' Else
UserName=Dvbbs.Checkstr(Request.Form("username"))
' End If
' End If
'校验用户名和密码是否合法
If UserName="" Or Dvbbs.strLength(userName)>Cint(Dvbbs.Forum_setting(41)) Or Dvbbs.strLength(userName) < Cint(Dvbbs.Forum_setting(40)) Then Dvbbs.AddErrCode(17)
if Dvbbs.ErrCodes<>"" then ShowErr("请输入您的用户名,请确认您输入的用户名长度是否符合论坛标准") 'zzcity add
If Not IstrueName(UserName) Then Dvbbs.AddErrCode(18)
if Dvbbs.ErrCodes<>"" then ShowErr("无效的用户名") 'zzcity add
' If Action = 8 Then
' '编辑贴子,检查用户身份
' UserPassWord=Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("password")))
' SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,TruePassWord From [Dv_User] Where UserID="&Dvbbs.UserID
' Else
'检查用户是否当前用户
' If UserName<>Dvbbs.MemberName Then
Reuser=True
UserPassWord=Dvbbs.Checkstr(Trim(Request.Form("passwd")))
UserPassWord=md5(UserPassWord,16)
SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,userpassword,UserToday From [Dv_User] Where UserName='"&UserName&"' "
' Else
' UserPassWord=Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("password")))
' SQL = "Select JoinDate,UserID,UserPost,UserGroupID,userclass,lockuser,TruePassWord From [Dv_User] Where UserID="&Dvbbs.UserID
' End If
' End If
' If Len(UserPassWord)<>16 AND Len(UserPassWord)<>32 Then Dvbbs.AddErrCode(18)
Set Rs=Dvbbs.Execute(SQL)
If Not Rs.EOF Then
' If Not (UserPassWord<>rs(6) Or rs(5)=1 or rs(3)=5) Then
'不允许使用马甲
' If Dvbbs.UserID<>Rs(1) Then
' ChkUserLogin = False
' Else
Dvbbs.UserID=Rs(1)
Dvbbs.UserToday=Split(Rs(7),"|")
UserPost=Rs(2)
GroupID=Rs(3)
userclass=Rs(4)
ChkUserLogin=True
' End If
Response.cookies("upNum")=0
' Else
' Dvbbs.LetGuestSession()
' End If
End If
Set Rs = Nothing
End Function
'判断发表类型及权限 GetPostType 0=赠送金币贴(求回复答案),1=获赠金币贴,2=金币购买贴
Private Sub Chk_PostType()
Dim ToolsID
ToolsID = Trim(Request.Form("ToolsID"))
GetPostType = Trim(Request.Form("GetPostType"))
ToMoney = Trim(Request.Form("ToMoney"))
If ToMoney="" or Not Isnumeric(ToMoney) Then ToMoney = 0
If ToolsID="" or Not Isnumeric(ToolsID) Then
ToolsID = ""
Else
ToolsID = Cint(ToolsID)
End If
ToMoney = cCur(ToMoney)
UseTools = ""
ToolsBuyUser = ""
GetMoneyType = 0
If Dvbbs.GroupSetting(59)<>1 Then Exit Sub
If GetPostType<>"" and (Action = 5 or Action = 7) Then
Select Case GetPostType
Case "0"
If ToMoney = 0 or ToMoney > CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text) Or ToMoney < 0 Then
' If ajaxpost Then
' Call showAjaxMsg(0,"您设置的金币值为空或者多于您拥有的金币数量。","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您设置的金币值为空或者多于您拥有的金币数量。&action=OtherErr"
' End If
ShowErr("您设置的金币值为空或者多于您拥有的金币数量。")
End if
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text = CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text) -ToMoney
'UseTools = "-1111"
ToolsBuyUser = "0|||$SendMoney"
GetMoneyType = 1
Case "1"
ToolsBuyUser = "0|||$GetMoney"
GetMoneyType = 2
'UseTools = ToolsInfo(4)
Case "2"
If ToMoney = 0 Or ToMoney < 0 Then
' If ajaxpost Then
' Call showAjaxMsg(0,"请正确填写购买帖的金币数量。","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=请正确填写购买帖的金币数量。&action=OtherErr"
' End If
ShowErr("请正确填写购买帖的金币数量。")
End if
Dim Buy_Orders,Buy_VIPType,Buy_UserList
Buy_Orders = Request.FORM("Buy_Orders")
Buy_VIPType = Request.FORM("Buy_VIPType")
Buy_UserList = Request.FORM("Buy_UserList")
If Buy_Orders<>"" and IsNumeric(Buy_Orders) Then
Buy_Orders = cCur(Buy_Orders)
Else
Buy_Orders = -1
End If
If Not IsNumeric(Buy_VIPType) Then Buy_VIPType = 0
If Buy_UserList<>"" Then Buy_UserList = Replace(Replace(Replace(Buy_UserList,"|||",""),"@@@",""),"$PayMoney","")
ToolsBuyUser = "0@@@"&Buy_Orders&"@@@"&Buy_VIPType&"@@@"&Buy_UserList&"|||$PayMoney|||"
GetMoneyType = 3
'UseTools = ToolsInfo(4)
End Select
End If
'回复获赠金币帖判断
If Action = 6 and GetPostType = "1" Then
If ToMoney = 0 or ToMoney > CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text) Or ToMoney < 0 Then
' If ajaxpost Then
' Call showAjaxMsg(0,"您设置的金币值为空或者多于您拥有的金币数量。","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您设置的金币值为空或者多于您拥有的金币数量。&action=OtherErr"
' End If
ShowErr("您设置的金币值为空或者多于您拥有的金币数量。")
End If
End If
End Sub
Rem ------------------------
Rem 保存部分函数开始
Rem ------------------------
'检查数据,提取数据,获得贴子数据表名等。
Public Sub Save_CheckData()
'Chk_Post()
'CheckfromScript()
'把提交的数据保存到session
'Content = CheckAlipay()
call ChkUserLogin()
isAlipayTopic = 2
If Content = "" Then
Content = Dvbbs.Checkstr(unescape(Request.Form("body")))
isAlipayTopic = 0
End If
'不再把内容保存到session
'Dvbbs.UserSession.documentElement.selectSingleNode("userinfo").attributes.setNamedItem(Dvbbs.UserSession.createNode(2,"postdata","")).text= Request.Form("body")
'验证码校验
' If Dvbbs.Board_Setting(4) <> "0" Then
' If Not Dvbbs.CodeIsTrue() Then
' If ajaxpost Then
' Call showAjaxMsg(0,"验证码校验失败,请点击验证码进行刷新!","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=验证码校验失败,2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
' End If
' End If
If InStr(Content,"[/payto]") > 0 And InStr(Content,"[payto]") > 0 And InStr(Content,"(/seller)") > 0 And InStr(Content,"(seller)") > 0 Then isAlipayTopic = 2
Chk_PostType()
'魔法表情检查部分
' tMagicFace = Request("tMagicFace")
' If tMagicFace = "" Or Not IsNumeric(tMagicFace) Then tMagicFace = 0
' tMagicFace = Cint(tMagicFace)
' iMagicFace = Request("iMagicFace")
' If iMagicFace = "" Or Not IsNumeric(iMagicFace) Then iMagicFace = 0
' iMagicFace = Clng(iMagicFace)
Expression = Dvbbs.Checkstr(Request.Form("Expression"))
If Expression = "" Then
Expression = "face1.gif"
Else
Expression = Replace(Expression,"|","")
End If
' If tMagicFace = 1 And iMagicFace > 0 And Dvbbs.Forum_Setting(98)="1" Then
' Set Rs = Dvbbs.Plus_Execute("Select tMoney,tTicket,MagicSetting From Dv_Plus_Tools_MagicFace Where MagicFace_s = " & iMagicFace)
' If Rs.Eof And Rs.Bof Then
' Expression = "0|" & Expression
' tMagicMoney = 0
' tMagicTicket = 0
' Else
' If cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text) < Rs(1) And cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text ) < Rs(0) Then
' If ajaxpost Then
' Call showAjaxMsg(0,"您没有足够的金币或点券使用魔法表情!","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您没有足够的金币或点券使用魔法表情,2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
' End if
' Dim iMagicSetting, iMagicStr
' iMagicStr = ""
' iMagicSetting = Split(Rs(2),"|")
' If cCur(iMagicSetting(0)) > cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text ) Then iMagicStr ="您的帖子数"
' If cCur(iMagicSetting(1)) > cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text) Then iMagicStr ="您的金钱数"
' If cCur(iMagicSetting(2)) > cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text) Then iMagicStr ="您的经验数"
' If cCur(iMagicSetting(3)) > cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text ) Then iMagicStr ="您的魅力数"
' If cCur(iMagicSetting(4)) > cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpower").text) Then iMagicStr ="您的威望数"
'
' If iMagicStr<>"" Then
' If ajaxpost Then
' Call showAjaxMsg(0,iMagicStr&"没有达到使用魔法表情的标准,","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&iMagicStr&"没有达到使用魔法表情的标准,2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
' End If
'
' Expression = iMagicFace & "|" & Expression
' tMagicMoney = Rs(0)
' tMagicTicket = Rs(1)
' FoundUseMagic = True
' End If
' Rs.Close
' Set Rs=Nothing
' Else
Expression = "0|" & Expression
' End If
Expression = Split(Expression,"|")
Topic = Dvbbs.Checkstr(Trim(unescape(Request.Form("topic"))))
signflag = Dvbbs.Checkstr(Trim(Request.Form("signflag")))
mailflag = Dvbbs.Checkstr(Trim(Request.Form("emailflag")))
MyTopicMode = Dvbbs.Checkstr(Trim(Request.Form("topicximoo")))
MyLockTopic = Dvbbs.Checkstr(Trim(Request.Form("locktopic")))
Myistop = Dvbbs.Checkstr(Trim(Request.Form("istop")))
Myistopall = Dvbbs.Checkstr(Trim(Request.Form("istopall")))
TopicMode = Request.Form("topicmode")
If Dvbbs.strLength(topic)> CLng(Dvbbs.Board_Setting(45)) Then
' If ajaxPost Then
' Call showAjaxMsg(0,Replace(template.Strings(23),"{$topiclimited}",Dvbbs.Board_Setting(45)),"","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&Replace(template.Strings(23),"{$topiclimited}",Dvbbs.Board_Setting(45))&"
2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' Response.redirect parameter
' End If
ShowErr("标题长度不能大于"&Dvbbs.Board_Setting(45)&"。")
End If
Rem 限制提交数据不能大于64K
If Len(Content) > 64*1024*1024 Then
' If ajaxPost Then
' Call showAjaxMsg(0,"您提交的数据过大,提交数据不能大于64K.","","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您提交的数据过大,提交数据不能大于64K&action=OtherErr&autoreload=1"
' Response.redirect parameter
' End if
ShowErr("您提交的数据过大,提交数据不能大于64K。")
End If
Rem 老迷增加xhtml格式限制
Dim XMLPOST,XHTML
XHTML=False
' If XHTML Then
' Set XMLPOST=Dvbbs.CreateXmlDoc("msxml2.DOMDocument"& MsxmlVersion)
' If XMLPOST.loadxml("" & replace(Content,"&","&") &"") Then
' Content=replace(Mid(XMLPOST.documentElement.xml,8,Len(XMLPOST.documentElement.xml)-15),"&","&")
' Else
' If ajaxPost Then
' Call showAjaxMsg(0,"您提交的数据不合法(必须提交XHTML格式).","","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您提交的数据不合法(必须提交XHTML格式)&action=OtherErr&autoreload=1"
' Response.redirect parameter
' End if
'
' End If
' Set XMLPOST=Nothing
' End If
If Dvbbs.strLength(Content) > CLng(Dvbbs.Board_Setting(16)) Then
' If ajaxPost Then
' Call showAjaxMsg(0,Replace(template.Strings(24),"{$bodylimited}",Dvbbs.Board_Setting(16)),"","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&Replace(template.Strings(24),"{$bodylimited}",Dvbbs.Board_Setting(16))&"
2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
ShowErr("帖子内容长度不能大于"&Dvbbs.Board_Setting(16)&"。")
End If
REM 2004-4-23添加限制帖子内容最小字节数,下次在模板中添加。Dvbbs.YangZheng
If Dvbbs.strLength(Content) < CLng(Dvbbs.Board_Setting(52)) And Not CLng(Dvbbs.Board_Setting(52)) = 0 Then
' If ajaxPost Then
' Call showAjaxMsg(0,Replace(template.Strings(24),"大于{$bodylimited}","小于"&Dvbbs.Board_Setting(52)),"","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&Replace(template.Strings(24),"大于{$bodylimited}","小于"&Dvbbs.Board_Setting(52))&"
2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' Response.redirect parameter
' End if
ShowErr("帖子内容长度不能小于"&Dvbbs.Board_Setting(52)&"。")
End If
Dim testContent
'如果使用了非HTML编辑器,则替换换行标志以实现换行 by 雨·漫步
If Dvbbs.GroupSetting(67) = 0 Then
Content = Replace(Content,vbCrLf,"
")
End If
testContent=Content
testContent=Replace(testContent,vbNewLine,"")
testContent=Replace(testContent," ","")
testContent=Replace(testContent," ","")
'testContent=Trim(Dvbbs.Replacehtml(testContent))
If testContent="" and InStr(Content,"您没有填写内容.2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
ShowErr("您没有填写内容,请填写帖子内容。")
End If
If Dvbbs.UserID=0 Then
mailflag=0:signflag=0
Else
If Not IsNumeric(mailflag) Or mailflag="" Then mailflag=0
mailflag=CInt(mailflag)
If Not IsNumeric(signflag) Or signflag="" Then signflag=1
signflag=CInt(signflag)
End If
If TopicMode<>"" and IsNumeric(TopicMode) Then TopicMode=Cint(TopicMode) Else TopicMode=0
If Request.form("upfilerename")<>"" Then
ihaveupfile=1
upfileinfo=Replace(Request.form("upfilerename"),"'","")
upfileinfo=Replace(upfileinfo,";","")
upfileinfo=Replace(upfileinfo,"--","")
upfileinfo=Replace(upfileinfo,")","")
Dim fixid,upfilelen
fixid=Replace(upfileinfo," ","")
fixid=Replace(fixid,",","")
If Not IsNumeric(fixid) Then ihaveupfile=0
upfilelen=len(upfileinfo)
upfileinfo=left(upfileinfo,upfilelen-1)
Else
ihaveupfile=0
End If
voteid=0
isvote=0
Dim VoteTemp,VoteTemp1,VoteTemp2
' If Action = 7 Then
' votetype=Dvbbs.Checkstr(request.Form("votetype"))
' If IsNumeric(votetype)=0 or votetype="" Then votetype=0
' vote=Dvbbs.Checkstr(trim(Replace(request.Form("vote"),"|","")))
' Dim j,k,vote_1,votelen,votenumlen
' If vote="" Then
' Dvbbs.AddErrCode(81)
' Else
' vote=split(vote,chr(13)&chr(10))
' j=0
' For i = 0 To ubound(vote)
' VoteTemp1 = ""
' VoteTemp2 = ""
' If Not (vote(i)="" Or vote(i)=" ") Then
' VoteTemp = Split(vote(i),"@@")
' If Ubound(VoteTemp) = 3 Then '判断是否调查
' If VoteTemp(1)="0" or VoteTemp(1)="1" Then
' VoteTemp1 = Split(VoteTemp(2),"$$")
' For k=0 to Ubound(VoteTemp1)-1
' VoteTemp2 = VoteTemp2 & "0$$"
' Next
' Else
' VoteTemp2 = 0
' End If
' votenum= votenum & VoteTemp2&"|"
' Else
' votenum=votenum&"0|"
' End If
' vote_1=""&vote_1&""&vote(i)&"|"
' j=j+1
' End If
' If i>cint(Dvbbs.Board_Setting(32))-2 Then Exit For
' Next
' 'For k = 1 to j
' ' votenum=""&votenum&"0|"
' 'Next
' votelen=len(vote_1)
' votenumlen=len(votenum)
' votenum=left(votenum,votenumlen-1)
' vote=left(vote_1,votelen-1)
' 'Response.Write votenum
' 'Response.End
' End If
' If Not IsNumeric(request("votetimeout")) Then
' Dvbbs.AddErrCode(82)
' Else
' If request("votetimeout")="0" Then
' votetimeout=dateadd("d",9999,Now())
' Else
' votetimeout=dateadd("d",CCur(request("votetimeout")),Now())
' End If
' votetimeout=Replace(Replace(CSTR(votetimeout+Dvbbs.Forum_Setting(0)/24),"上午",""),"下午","")
' End If
' End If
If Action = 5 Or Action = 7 Then
CanLockTopic=False
CanTopTopic=False
CanTopTopic_a=False
If Topic="" OR Replace(Topic&"","","")="" Then
' If ajaxpost Then
' Call showAjaxMsg(0,"您是否忘记填写标题了?","","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=您忘记填写标题
2秒后自动返回上一页面。&action=OtherErr&autoreload=1"
' End If
ShowErr("您忘记填写标题")
End if
'减少判断,如果不为固顶,锁定等等的操作的话,不检查权限。
' If MyLockTopic="yes" Or Myistopall="yes" Or Myistop="yes" Then
' '判断用户是否有固顶/解除固顶帖子权限
' 'If (dvbbs.master or dvbbs.superboardmaster or dvbbs.boardmaster) Then
' If Dvbbs.GroupSetting(20)="1" Then CanLockTopic=True
' 'End If
' If Dvbbs.GroupSetting(21)="1" Then CanTopTopic=True
'
' 'If Dvbbs.FoundUserPer and Dvbbs.GroupSetting(21)="1" Then
' ' CanTopTopic=True
' 'ElseIf Dvbbs.FoundUserPer and Dvbbs.GroupSetting(21)="0" Then
' ' CanTopTopic=False
' 'End If
' '判断用户是否有总固顶帖子权限
' If (dvbbs.master or dvbbs.superboardmaster or dvbbs.boardmaster) and Dvbbs.GroupSetting(38)="1" Then CanTopTopic_a=True
' If Dvbbs.GroupSetting(38)="1" and Cint(Dvbbs.UserGroupID)>3 Then CanTopTopic_a=True
' If Dvbbs.FoundUserPer and Dvbbs.GroupSetting(38)="1" Then
' CanTopTopic_a=True
' ElseIf Dvbbs.FoundUserPer and Dvbbs.GroupSetting(38)="0" Then
' CanTopTopic_a=False
' End If
' End If
If MyLockTopic="yes" Then
MyLockTopic=1
Else
MyLockTopic=0
End If
If Myistopall="yes" Then
Myistopall=1
Else
Myistopall=0
End If
If Not CanTopTopic_a Then Myistopall=0
If Myistop="yes" and Myistopall=0 Then
Myistop=1
If Not CanTopTopic Then Myistop=0
ElseIf Myistopall=1 Then
Myistop=3
Else
Myistop=0
End If
If Not IsNumeric(MyTopicMode) or Dvbbs.GroupSetting(51)="0" Then MyTopicMode=0
If Not CanLockTopic Then MyLockTopic=0
TotalUseTable=Dvbbs.NowUseBbs
' ElseIf Action = 6 Then
' AnnounceID = Request("followup")
' RootID = Request("RootID")
' If AnnounceID = "" Or Not IsNumeric(AnnounceID) Then Dvbbs.AddErrCode(30)
' If RootID = "" Or Not IsNumeric(RootID) Then Dvbbs.AddErrCode(30)
' TotalUseTable=Request.Form("TotalUseTable")
' TotalUseTable=checktable(TotalUseTable)
' ShowErr("")
' AnnounceID = cCur(AnnounceID)
' ParentID = AnnounceID
' RootID = cCur(RootID)
' MyLockTopic=0
' ElseIf Action = 8 Then
' If Not IsNumeric(MyTopicMode) or Dvbbs.GroupSetting(51)="0" Then MyTopicMode=0
' AnnounceID = Request("replyID")
' RootID = Request("ID")
' If AnnounceID = "" Or Not IsNumeric(AnnounceID) Then Dvbbs.AddErrCode(30)
' If RootID = "" Or Not IsNumeric(RootID) Then Dvbbs.AddErrCode(30)
' TotalUseTable = Checktable(Request.Form("TotalUseTable"))
' ShowErr("")
' AnnounceID = cCur(AnnounceID)
' RootID = cCur(RootID)
' MyLockTopic=0
' Set Rs=Dvbbs.Execute("select AnnounceID from "&TotalUseTable&" where ParentID=0 and rootid="&RootID)
' If Not Rs.eof Then
' If AnnounceID=Rs(0) Then
' If Topic="" OR Replace(Topic&"","","")="" Then Dvbbs.AddErrCode(79)
' End If
' Else
' Dvbbs.AddErrCode(30)
' End If
End If
' ShowErr("")
SaveData()
End Sub
'保存数据
Private Sub SaveData()
If Not (Dvbbs.Master or Action = 8) Then CheckpostTime()
Dim Forumupload
'Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@postdata").text =""
' If Dvbbs.GroupSetting(64)="1" Then
IsAudit=0
' Else
' If Dvbbs.Board_Setting(57)="1" Then
' IsAudit=NeedIsAudit()
IsAuditcheck=IsAudit
' End If
' End If
If Dvbbs.UserID=0 Then IsAudit=1:IsAuditcheck=2
' If IsAudit=0 Then
' If AccessPost =1 Then
' IsAudit=1
' IsAuditcheck=2
' End If
' End If
locktopic=0
If MyLockTopic=1 Then locktopic=1
If IsAudit=1 And Action <> 8 Then
LockTopic=Dvbbs.BoardID
Dvbbs.BoardID=777
Response.Cookies("Dvbbs")=LockTopic
Else
Response.Cookies("Dvbbs")=Dvbbs.Boardid
End If
Forumupload=split(Dvbbs.Board_Setting(19),"|")
For i=0 to ubound(Forumupload)
If Instr(Content,"[upload="&Forumupload(i)&"]") or Instr(Content,"."&Forumupload(i)&"") or Instr(Content,"["&Forumupload(i)&"]") then
uploadpic_n=Forumupload(i)
Exit For
End If
Next
If InStr(Content,"viewfile.asp?ID=") Then uploadpic_n="down"
' If Not Action = 8 Then
savepost()
If Dvbbs.UserID>0 Then updatepostuser()
' Else
' Update_Edit_Announce()
' End If
If Dvbbs.GroupSetting(59)=1 Then
If (Action = 5 Or Action = 7) and (GetPostType="1" or GetPostType="2") Then
'Dim LogMsg
'LogMsg = "主题:《"&topic&"》 使用"&ToolsInfo(5)&"道具成功,并插入道具日志记录。"
'Call Dvbbs.ToolsLog(ToolsInfo(4),1,0,0,1,LogMsg,Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text &"|"&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text)
'Call UpdateUserTools(Dvbbs.UserID,ToolsInfo(4),1)
ElseIf Action = 6 and GetPostType="1" and GetMoneyType=4 Then
Call GetMoney_SaveRe
End If
End If
If Action <>8 Then
'If IsSqlDataBase = 1 Then
' Dvbbs.Execute("Delete From [Dv_lastpost] Where Datediff(Mi, DateAndtime, " & SqlNowString & ") > 20")
'Else
' Dvbbs.Execute("Delete From [Dv_lastpost] Where Datediff('s', DateAndtime, " & SqlNowString & ") > 20*60")
'End If
'Dvbbs.Execute("Insert Into Dv_lastpost (PostTitle,PostUserID,DateAndtime) values ('"&Dvbbs.Checkstr(Left(Trim(Request.Form("topic")&"")& Request.Form("body"),150))&"',"&Dvbbs.UserID&",'"&Now()&"')")
End If
succeed()
End Sub
'保存发贴,投票和回贴
Public Sub Savepost()
If Action = 5 Or Action = 7 Then
ilayer=1:iOrders=0:ParentID=0
MyLastPostTime=Replace(Replace(CSTR(NOW()+Dvbbs.Forum_Setting(0)/24),"上午",""),"下午","")
DateTimeStr=MyLastPostTime'Replace(Replace(CSTR(NOW()+Dvbbs.Forum_Setting(0)/24),"上午",""),"下午","")
If Action = 7 Then Insert_To_Vote()
Insert_To_Topic()
'更新总固顶和固顶的数据以及缓存数据
If MyIsTop=3 Then
'将总固顶ID插入总设置表
Dim iForum_AllTopNum
Set Rs=Dvbbs.Execute("Select Forum_AllTopNum From Dv_Setup")
If Trim(Rs(0))="" Or IsNull(Rs(0)) Then
iForum_AllTopNum = RootID
Else
iForum_AllTopNum = Rs(0) & "," & RootID
End If
Dvbbs.Execute("Update Dv_Setup Set Forum_AllTopNum='"&iForum_AllTopNum&"'")
Dvbbs.ReloadSetupCache iForum_AllTopNum,28
Set Rs=Nothing
ElseIf MyIsTop=1 Then
Dim BoardTopStr
Set Rs=Dvbbs.Execute("Select BoardID,BoardTopStr From Dv_Board Where BoardID="&Clng(Dvbbs.BoardID))
If Not (Rs.Eof And Rs.Bof) Then
If Rs(1)="" Or IsNull(Rs(1)) Then
BoardTopStr = RootID
Else
If InStr(","&Rs(1)&",","," & RootID & ",")>0 Then
BoardTopStr = Rs(1)
Else
BoardTopStr = Rs(1) & "," & RootID
End If
End If
Dvbbs.Execute("Update Dv_Board Set BoardTopStr='"&BoardTopStr&"' Where BoardID="&Rs(0))
Dvbbs.LoadBoardinformation Rs(0)
End If
Set Rs=Nothing
End If
' ElseIf Action = 6 Then
' Get_SaveRe_TopicInfo()
' Get_ForumTreeCode()
' DateTimeStr=Replace(Replace(CSTR(NOW()+Dvbbs.Forum_Setting(0)/24),"上午",""),"下午","")
End If
Insert_To_Announce()
If Action = 6 Then
' topic=Replace(Replace(cutStr(reubbcode(topic),14),chr(10),""),"'","")
' If topic="" Then
' topic=Content
' topic=Replace(cutStr(reubbcode(topic),14),chr(10),"")
' Else
' topic=Replace(cutStr(reubbcode(topic),14),chr(10),"")
' End If
' If ihaveupfile=1 Then Dvbbs.Execute("update dv_upfile set F_AnnounceID='"&RootID&"|"&AnnounceID&"',F_Readme='"&Replace(toptopic,"'","")&"',F_flag=0 where F_ID in ("&upfileinfo&")")
Else
If ihaveupfile=1 Then Dvbbs.Execute("update dv_upfile set F_AnnounceID='"&RootID&"|"&AnnounceID&"',F_Readme='"&Topic&"',F_flag=0 where F_ID in ("&upfileinfo&")")
End If
If signflag=2 Then
LastPost=Replace("匿名用户","$","") & "$" & AnnounceID & "$" & DateTimeStr & "$" & Replace(topic,"$","$") & "$" & uploadpic_n & "$" & " " & "$" & RootID & "$" & Dvbbs.BoardID
Else
LastPost=Replace(username,"$","") & "$" & AnnounceID & "$" & DateTimeStr & "$" & Replace(topic,"$","$") & "$" & uploadpic_n & "$" & Dvbbs.UserID & "$" & RootID & "$" & Dvbbs.BoardID
End If
LastPost=Replace(LastPost,"'","")
LastPost=Dvbbs.ChkBadWords(LastPost)
If IsAudit<>1 Then
Dim IsUpDateLastPostTime
IsUpDateLastPostTime = False
If InStr("," & Tools_UseTools & ",",",13,")>0 Or InStr("," & Tools_UseTools & ",",",14,")>0 Then IsUpDateLastPostTime = True
If Action = 6 Then
If IsUpDateLastPostTime Then
If DateDiff("h",Now(),Tools_LastPostTime)<=0 Then
SQL="update Dv_topic set child=child+1,LastPostTime="&SqlNowString&",LastPost='"&LastPost&"' where TopicID="&RootID
Else
SQL="update Dv_topic set child=child+1,LastPost='"&LastPost&"' where TopicID="&RootID
End If
Else
SQL="update Dv_topic set child=child+1,LastPostTime="&SqlNowString&",LastPost='"&LastPost&"' where TopicID="&RootID
End If
Dvbbs.Execute(SQL)
Child=Child+2
If Child mod Dvbbs.Board_Setting(27)=0 Then
star=Child\Dvbbs.Board_Setting(27)
Else
star=(Child\Dvbbs.Board_Setting(27))+1
End If
Else
Dvbbs.Execute("update Dv_topic set LastPost='"&LastPost&"' where topicid="&RootID)
End If
Else
Rem 待审核取消回复更新最后发贴。
If Action = 5 Or Action = 7 Then Dvbbs.Execute("update Dv_topic set LastPost='"&LastPost&"' where topicid="&RootID)
End If
If Action = 5 Or Action = 7 Then
toptopic=Replace(cutStr(topic,20),"$","$")
Else
toptopic=Replace(cutStr(toptopic,20),"$","$")
End If
'toptopic =主标题,Content=内容
'判断是否是加密的论坛,如果是,则不显示最后发贴内容。
If Dvbbs.Board_Setting(2)="1" Then
LastPost_1="保密$" & AnnounceID & "$" & DateTimeStr & "$请认证用户进入查看$" & uploadpic_n & "$" & Dvbbs.UserID & "$" & RootID & "$" & Dvbbs.BoardID
ElseIf signflag=2 Then
LastPost_1=Replace("匿名用户","$","") & "$" & AnnounceID & "$" & DateTimeStr & "$" & toptopic & "$" & uploadpic_n & "$" & " " & "$" & RootID & "$" & Dvbbs.BoardID
Else
LastPost_1=Replace(username,"$","") & "$" & AnnounceID & "$" & DateTimeStr & "$" & toptopic & "$" & uploadpic_n & "$" & Dvbbs.UserID & "$" & RootID & "$" & Dvbbs.BoardID
End If
LastPost_1=reubbcode(Replace(LastPost_1,"'",""))
LastPost_1=Dvbbs.ChkBadWords(LastPost_1)
If IsAudit=0 Then
UpDate_BoardInfoAndCache()
UpDate_ForumInfoAndCache()
End If
Response.Cookies("Dvbbs")=Dvbbs.BoardID
End Sub
'判断用户是否有编辑权限且提取相关信息
Public Function Get_Edit_PermissionInfo()
' Dim old_user
' If Action = 4 Then
' Set Rs=Dvbbs.Execute("select b.username,b.topic,b.body,b.dateandtime,u.UserGroupID,b.signflag,b.emailflag from "&TotalUseTable&" b left outer join [dv_user] u on b.postuserid=u.userid where b.RootID="&AnnounceID&" and b.AnnounceID="&replyID)
' Else
' Set Rs=Dvbbs.Execute("select b.username,b.topic,b.body,b.dateandtime,u.UserGroupID,b.signflag,b.emailflag from "&TotalUseTable&" b left outer join [dv_user] u on b.postuserid=u.userid where b.RootID="&RootID&" and b.AnnounceID="&AnnounceID)
' End If
' If Rs.Eof And Rs.Bof Then
' Dvbbs.AddErrCode(48)
' Else
' If Action = 4 Then
' signflag=Rs("signflag")
' mailflag=Rs("emailflag")
' Topic=rs("topic")
' If Topic<>"" Then Topic = Server.HtmlEncode(Topic)
' Content=rs("body")
' old_user=rs("username")
' Else
' If Clng(Dvbbs.forum_setting(50))>0 then
' If Datediff("s",rs("dateandtime"),Now())>Clng(Dvbbs.forum_setting(50))*60 then
' Content = Content+chr(13)+chr(10)+char_changed+chr(13)
' End If
' Else
' Content = Content+chr(13)+chr(10)+char_changed+chr(13)
' End If
' End If
' If Clng(Dvbbs.forum_setting(51))>0 and not (Dvbbs.master or Dvbbs.boardmaster or Dvbbs.superboardmaster) Then
' If DateDiff("s",rs("dateandtime"),Now())>Clng(Dvbbs.forum_setting(51))*60 then
' If ajaxPost Then
' Call showAjaxMsg(0,Replace(Replace(template.Strings(22),"{$posttime}",Datediff("s",rs("dateandtime"),Now())/60),"{$etlimited}",Dvbbs.forum_setting(51)),"","")
' Else
' parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&Replace(Replace(template.Strings(22),"{$posttime}",Datediff("s",rs("dateandtime"),Now())/60),"{$etlimited}",Dvbbs.forum_setting(51))&"&action=OtherErr"
' Response.redirect parameter
' End If
' End If
' End If
' If Rs("username")=Dvbbs.membername Then
' If Dvbbs.GroupSetting(10)="0" then
' Dvbbs.AddErrCode(74)
' CanEditPost=False
' Else
' CanEditPost=True
' End If
' Else
' signflag=Rs("signflag")
' mailflag=Rs("emailflag")
' If (Dvbbs.master or Dvbbs.superboardmaster or Dvbbs.boardmaster) and Dvbbs.GroupSetting(23)="1" then
' CanEditPost=True
' Else
' CanEditPost=False
' End If
' If Cint(Dvbbs.UserGroupID) > 3 And Dvbbs.GroupSetting(23)="1" Then CanEditPost=true
' If Dvbbs.GroupSetting(23)="1" and Dvbbs.founduserPer Then
' CanEditPost=True
' ElseIf Dvbbs.GroupSetting(23)="0" And Dvbbs.founduserPer Then
' CanEditPost=False
' End If
' If Cint(Dvbbs.UserGroupID) < 4 And Cint(Dvbbs.UserGroupID) = rs("UserGroupID") Then
' Dvbbs.AddErrCode(75)
' ElseIf Cint(Dvbbs.UserGroupID) < 4 and Cint(Dvbbs.UserGroupID) > rs("UserGroupID") Then
' Dvbbs.AddErrCode(76)
' End If
' If Not CanEditPost Then Dvbbs.AddErrCode(77)
' End If
' End If
' Set Rs=Nothing
' ShowErr("")
' If Action = 4 Then Dvbbs.MemberName=old_user
End Function
Public Sub Get_SaveRe_TopicInfo()
' SQL="select locktopic,LastPost,title,smsuserlist,IsSmsTopic,istop,Child,UseTools,LastPostTime,GetMoneyType,PostUserID, DateAndTime from Dv_topic where BoardID="&Dvbbs.BoardID&" And topicid="&cstr(RootID)
' Set Rs=dvbbs.Execute(sql)
' If Not (Rs.EOF And Rs.BOF) Then
' toptopic = Rs(2)
' istop = Rs(5)
' Child = Rs(6)
' Tools_UseTools = "," & Rs(7) & ","
' Tools_LastPostTime = Rs(8)
' If Rs("IsSmsTopic")=1 Then smsuserlist=Rs("smsuserlist")
' If Rs("LockTopic")=1 And Not (Dvbbs.Master Or Dvbbs.BoardMaster Or Dvbbs.SuperBoardMaster) Then Dvbbs.AddErrCode(78)
' '锁定多少天前的帖子判断 2004-9-16 Dv.Yz
' If Ubound(Dvbbs.Board_Setting) > 70 And Not (Dvbbs.Master Or Dvbbs.BoardMaster Or Dvbbs.SuperBoardMaster) Then
' If Not Clng(Dvbbs.Board_Setting(71)) = 0 And Datediff("d", Rs(11), Now()) > Clng(Dvbbs.Board_Setting(71)) Then Dvbbs.AddErrCode(78)
' End If
' If Not IsNull(Rs(1)) Then
' LastPost=split(Rs(1),"$")
' If ubound(LastPost)=7 Then
' UpLoadPic_n=LastPost(4)
' Else
' UpLoadPic_n=""
' End If
' End If
' If Cint(Rs(9)) = 5 Then
' If ajaxpost Then
' Call showAjaxMsg(0,template.Strings(32),"","")
' Else
' Response.redirect"showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"+""&template.Strings(32)&"&action=OtherErr"
' End If
' End If
' If Clng(Rs(10)) <> Dvbbs.UserID and Cint(Rs(9)) = 2 and GetPostType = "1" Then
' GetMoneyType = 4
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text = Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text -ToMoney
' Else
' GetMoneyType = 0
' ToMoney=0
' End If
' End If
' Set Rs = Nothing
' ShowErr("")
End Sub
Public Sub Insert_To_Vote()
'插入投票记录 GroupSetting(68)投票项目中是否可以使用HTML
Dim UArticle,UWealth,UEP,UCP,UPower
Dim LockVote
UArticle = Request.Form("UArticle")
UWealth = Request.Form("UWealth")
UEP = Request.Form("UEP")
UCP = Request.Form("UCP")
UPower = Request.Form("UPower")
LockVote = Request.Form("lockvote")
If Not IsNumeric(UArticle) Then UArticle = 0
If Not IsNumeric(UWealth) Then UWealth = 0
If Not IsNumeric(UEP) Then UEP = 0
If Not IsNumeric(UCP) Then UArticle = 0
If Not IsNumeric(UPower) Then UPower = 0
If Not IsNumeric(LockVote) Then LockVote = 0
If Dvbbs.GroupSetting(68)<>"1" Then vote = server.htmlencode(vote)
Dvbbs.execute("insert into dv_vote (vote,votenum,votetype,timeout,UArticle,UWealth,UEP,UCP,UPower,LockVote) values ('"&vote&"','"&votenum&"',"&votetype&",'"&votetimeout&"',"&UArticle&","&UWealth&","&UEP&","&UCP&","&UPower&","&LockVote&")")
set rs=dvbbs.execute("select Max(voteid) from dv_vote")
voteid=Rs(0)
isvote=1
Set Rs=Nothing
End Sub
Public Sub Insert_To_Topic()
'插入主题表
Dim hidename
If signflag=2 Then
hidename=1
Else
hidename=0
End If
SQL="insert into Dv_topic (Title,Boardid,PostUsername,PostUserid,DateAndTime,Expression,LastPost,LastPostTime,PostTable,locktopic,istop,TopicMode,isvote,PollID,Mode,GetMoney,UseTools,GetMoneyType,isSmsTopic,HideName) values ('"&topic&"',"&Dvbbs.boardid&",'"&username&"',"&Dvbbs.userid&",'"&DateTimeStr&"','"&Expression(0)&"|"&Expression(1)&"','$$"&DateTimeStr&"$$$$','"&MyLastPostTime&"','"&TotalUseTable&"',"&locktopic&","&Myistop&","&MyTopicMode&","&isvote&","&voteid&","&TopicMode&","&ToMoney&",'"&UseTools&"',"&GetMoneyType&","&isAlipayTopic&","&hidename&")"
Dvbbs.Execute(sql)
Set Rs=Dvbbs.Execute("select Max(topicid) From Dv_topic Where PostUserid="&Dvbbs.UserID)
RootID=Rs(0)
End Sub
Public Sub Insert_To_Announce()
'插入回复表
DIM UbblistBody
UbblistBody = Content
UbblistBody = Ubblist(Content)
Dim FlashId
If Dvbbs.qcomic_plus Then
FlashId = Dvbbs.Checkstr(Request.Form("phid"))
Else
FlashId = "0"
End If
SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType,FlashId) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&dvbbs.checkstr(ToolsBuyUser)&"',"&GetMoneyType&",'"&FlashId&"')"
Dvbbs.Execute(sql)
Set Rs=Dvbbs.Execute("select Max(AnnounceID) From "&TotalUseTable&" Where PostUserID="&Dvbbs.UserID)
AnnounceID=Rs(0)
If Dvbbs.qcomic_plus And Len(FlashId)>5 Then
On Error Resume Next
DIM Qcomic_setting,qcomic_url,qcomic_code,qcomic_http,qcomic_tid,qcomic_rs,qcomic_topic
If topic="" Then
qcomic_tid = RootID
Set qcomic_rs = Dvbbs.iCreateObject("ADODB.Recordset")
SQL="SELECT Title FROM Dv_Topic where TopicID="&RootID
qcomic_rs.Open SQL,conn,1,3
If Not qcomic_rs.Eof Then
qcomic_topic = qcomic_rs(0)
End If
Else
qcomic_topic = topic
End If
Qcomic_setting = Split(Dvbbs.qcomic_plus_setting(), "||||")
qcomic_code = "spassword=" & Qcomic_setting(2)
qcomic_code = qcomic_code & "&phid=" & FlashId
qcomic_code = qcomic_code & "&tid=" & RootID
qcomic_code = qcomic_code & "&pid=" & AnnounceID
qcomic_code = qcomic_code & "&fid=" & Dvbbs.boardid
qcomic_code = qcomic_code & "&uid=" & Dvbbs.userid
qcomic_code = qcomic_code & "&ctime=" & Now()
qcomic_code = qcomic_code & "&mtime=" & Now()
qcomic_url = "http://comic.qihoo.com/dvbbs/update.php?sid=" & Qcomic_setting(1)
qcomic_url = qcomic_url & "&code=" & Server.UrlEncode(AuthCode(qcomic_code, "ENCODE", Qcomic_setting(3)))
qcomic_url = qcomic_url & "&title=" & Server.UrlEncode(qcomic_topic)
qcomic_url = qcomic_url & "&content=" & Server.UrlEncode(Left(Dvbbs.Replacehtml(Dvbbs.ReplaceUbb(Content)),1000))
Set qcomic_http = Server.CreateObject("Microsoft.XMLHTTP")
qcomic_http.Open "GET",qcomic_url,false
qcomic_http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
qcomic_http.send()
If Err Then err.Clear
End If
End Sub
'检查贴中是否含过滤字
Public Function NeedIsAudit()
NeedIsAudit=0
Dim i,ChecKData
If Dvbbs.Board_Setting(58)<>"0" Then
ChecKData=split(Dvbbs.Board_Setting(58),"|")
For i=0 to UBound(ChecKData)
If Trim(ChecKData(i))<>"" Then
If InStr(Content,ChecKData(i))>0 Or InStr(Topic,ChecKData(i))>0 Then
NeedIsAudit=1
Exit Function
End If
End If
Next
End If
End Function
Public Sub Get_ForumTreeCode()
' Dim mailbody
' Set Rs=Dvbbs.Execute("select b.layer,b.orders,b.EmailFlag,b.username,u.userEmail from "&TotalUseTable&" b inner join [Dv_user] u on b.postuserid=u.userid where b.AnnounceID="&ParentID)
' If Not(rs.EOF And rs.BOF) Then
' If IsNull(Rs(0)) Then
' iLayer=1
' Else
' iLayer=Rs(0)
' End If
' If IsNull(Rs(1)) Then
' iOrders=0
' Else
' iOrders=Rs(1)
' End If
' If Rs(3)=Dvbbs.membername Then
' If Cint(Dvbbs.GroupSetting(4))=0 Then Dvbbs.AddErrCode(73)
' Else
' If Dvbbs.GroupSetting(5)="0" Then
' If ajaxpost Then
' Call showAjaxMsg(0,template.Strings(29),"","")
' Else
' Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes="&template.Strings(29)&"&action=OtherErr"
' End If
' End if
' If Rs(2)>0 Then
' Dim sUrl,Email,TempArray,etopic
' TempArray = Split(template.html(10),"||")
' sUrl=Dvbbs.Get_ScriptNameUrl
' If Rs(2)=1 Or Rs(2)=3 Then
' etopic=Replace(template.Strings(25),"{$forumname}",Dvbbs.Forum_info(0))
' email=Rs(4)
' mailbody = TempArray(0)
' mailbody = Replace(mailbody,"{$username}",Rs(3))
' mailbody = Replace(mailbody,"{$boardid}",Dvbbs.BoardID)
' mailbody = Replace(mailbody,"{$forumname}",Dvbbs.Forum_info(0))
' mailbody = Replace(mailbody,"{$topicid}",RootID)
' mailbody = Replace(mailbody,"{$star}",Star)
' mailbody = Replace(mailbody,"{$surl}",sUrl)
' mailbody = Replace(mailbody,"{$parentid}",ParentID)
' Dim DvEmail
' Set DvEmail = New Dv_SendMail
' DvEmail.SendObject = Cint(Dvbbs.Forum_Setting(2)) '设置选取组件 1=Jmail,2=Cdonts,3=Aspemail
' DvEmail.ServerLoginName = Dvbbs.Forum_info(12) '您的邮件服务器登录名
' DvEmail.ServerLoginPass = Dvbbs.Forum_info(13) '登录密码
' DvEmail.SendSMTP = Dvbbs.Forum_info(4) 'SMTP地址
' DvEmail.SendFromEmail = Dvbbs.Forum_info(5) '发送来源地址
' DvEmail.SendFromName = Dvbbs.Forum_info(0) '发送人信息
' If DvEmail.ErrCode = 0 Then
' DvEmail.SendMail email,etopic,mailbody '执行发送邮件
' End If
' Set DvEmail = Nothing
' End If
' If Rs(2)=2 Or Rs(2)=3 Then
' mailbody = TempArray(1)
' mailbody = Replace(mailbody,"{$boardid}",Dvbbs.BoardID)
' mailbody = Replace(mailbody,"{$topicid}",RootID)
' mailbody = Replace(mailbody,"{$star}",Star)
' mailbody = Replace(mailbody,"{$surl}",sUrl)
' mailbody = Replace(mailbody,"{$parentid}",ParentID)
' Dvbbs.Execute("insert into dv_message(incept,sender,title,content,sendtime,flag,issend) values('"&Rs(3)&"','"&Dvbbs.Forum_info(0)&"','"&template.Strings(26)&"','"&mailbody&"',"&SqlNowString&",0,1)")
' update_user_msg(Rs(3))
' End If
' End If
' End If
' Else
' iLayer=1
' iOrders=0
' End If
' Set Rs=Nothing
' If RootID<>0 Then
' iLayer=ilayer+1
' Dvbbs.Execute "update "&TotalUseTable&" set orders=orders+1 where RootID="&cstr(RootID)&" and orders>"&cstr(iOrders)
' iOrders=iOrders+1
' End If
End Sub
Public Sub Update_Edit_Announce()
Dim re,LastBoard,LastTopic
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="
"
Content = re.Replace(Content,"[br]")
re.Pattern="\[align=right\]\[color=#000066\](.*)\[\/color\]\[\/align\]"
Content = re.Replace(Content,"")
re.Pattern="(.*)<\/font><\/div>"
Content = re.Replace(Content,"")
re.Pattern="\[br\]"
Content = re.Replace(Content,"
")
Set re=Nothing
If Dvbbs.membername<>UserName Then
If Dvbbs.forum_setting(49)="1" Then char_changed = "[align=right][color=#000066][此贴子已经被"&Dvbbs.membername&"于"&Now()&"编辑过][/color][/align]"
Else
If Dvbbs.forum_setting(48)="1" Then char_changed = "[align=right][color=#000066][此贴子已经被作者于"&Now()&"编辑过][/color][/align]"
End If
Get_Edit_PermissionInfo
Dim Contentdata,LastPost_l
Contentdata=Content
ShowErr("")
'取出当前版面最后回复id,如果本帖为最后回复则更新相应数据
Set Rs = Dvbbs.Execute("select LastPost from dv_board where boardid="&Dvbbs.BoardID)
If not (Rs.EOF And Rs.BOF) Then
If Not IsNull(rs(0)) And rs(0)<>"" then
LastBoard=split(rs(0),"$")
If ubound(LastBoard)=7 Then
If cCur(LastBoard(1))=cCur(AnnounceID) Then
If signflag=2 Then LastBoard(0)="匿名用户":LastBoard(5)=""
LastPost=LastBoard(0) & "$" & LastBoard(1) & "$" & Now() & "$" & LastBoard(3) & "$" & LastBoard(4) & "$" & LastBoard(5) & "$" & LastBoard(6) & "$" & Dvbbs.BoardID
dvbbs.execute("update dv_board set LastPost='"&Replace(Replace(LastPost,"'",""),"<","<")&"' where boardid="&Dvbbs.BoardID)
UpDate_BoardInfoAndCache()
End If
End If
End If
End If
'取得当前主题最后回复id,如果本帖为最后回复则更新相应数据
Dim iFoundUseMagic,MyMagicFace
Set Rs=Dvbbs.Execute("select LastPost,istop,Expression from dv_topic where topicid="&rootid)
If Not (Rs.Eof And Rs.Bof) Then
istop=rs(1)
MyMagicFace = Split(Rs(2),"|")
If Ubound(MyMagicFace) = 1 Then iFoundUseMagic = MyMagicFace(0)
If Not Isnull(Rs(0)) And Rs(0)<>"" Then
LastTopic=split(rs(0),"$")
If Ubound(LastTopic)=7 Then
If cCur(LastTopic(1))=cCur(Announceid) Then
If signflag=2 Then LastTopic(0)="匿名用户":LastTopic(5)=""
If Trim(uploadpic_n)<>"" Then LastTopic(4)=uploadpic_n
LastPost=LastTopic(0) & "$" & LastTopic(1) & "$" & Now() & "$" & Replace(cutStr(reubbcode(Contentdata),20),"$","$") & "$" & LastTopic(4) & "$" & LastTopic(5) & "$" & LastTopic(6) & "$" & Dvbbs.BoardID
dvbbs.execute("update dv_topic set LastPost='"&Replace(LastPost,"'","")&"' where topicid="&rootid)
End If
End If
End If
End If
Set Rs = Dvbbs.iCreateObject("ADODB.Recordset")
SQL="SELECT * FROM "&TotalUseTable&" where AnnounceID="&Announceid&" And username='"&username&"'"
rs.Open SQL,conn,1,3
If Rs.EOF And Rs.BOF Then
If Not CanEditPost Then showerr("您没有足够的权限编辑本帖子,请和管理员联系") 'Dvbbs.AddErrCode(77)
ElseIf Not Dvbbs.master And rs("locktopic")=1 then
showerr("本主题已经锁定,不能发表回复") 'Dvbbs.AddErrCode(78)
Else
If Rs("parentid")=0 then
Dim iExpression
iExpression = ",Expression='"&Expression(0)&"|"&Expression(1)&"'"
If signflag=2 Then
Dvbbs.Execute("update dv_topic set title='"&topic&"',TopicMode="&MyTopicMode&",isSmsTopic="&isAlipayTopic&" "&iExpression&",HideName=1 where topicid="&rootid)
Else
Dvbbs.Execute("update dv_topic set title='"&topic&"',TopicMode="&MyTopicMode&",isSmsTopic="&isAlipayTopic&" "&iExpression&",HideName=0 where topicid="&rootid)
End If
End If
If IsAudit = 1 Then
Rs("locktopic")=3
ElseIf Rs("locktopic")=3 And IsAudit = 0 Then
Rs("locktopic")=0
End If
Rs("Topic") =Replace(Topic,"''","'")
rs("Body") =Replace(Content,"''","'")
rs("length")=Dvbbs.strlength(Content)
rs("ip")=Dvbbs.UserTrueIP
rs("Expression")=Expression(1)
rs("signflag")=signflag
rs("emailflag")=mailflag
If Rs("isupload")=0 And ihaveupfile=1 Then Rs("isupload")=1
Dim UbblistBody
UbblistBody = Ubblist(Content)
Rs("Ubblist")=UbblistBody
If Dvbbs.qcomic_plus Then
Dim FlashId
FlashId = Dvbbs.Checkstr(Request.Form("phid"))
Rs("FlashId") = FlashId
End If
rs.Update
If Dvbbs.qcomic_plus Then
On Error Resume Next
DIM Qcomic_setting,qcomic_url,qcomic_code,qcomic_http,qcomic_rs,qcomic_topic,qcomic_tid
If Rs("Topic")="" Then
qcomic_tid = Rs("RootID")
Set qcomic_rs = Dvbbs.iCreateObject("ADODB.Recordset")
SQL="SELECT Title FROM Dv_Topic where TopicID="&qcomic_tid
qcomic_rs.Open SQL,conn,1,3
If Not qcomic_rs.Eof Then
qcomic_topic = qcomic_rs(0)
End If
Else
qcomic_topic = Rs("Topic")
End If
Qcomic_setting = Split(Dvbbs.qcomic_plus_setting(), "||||")
qcomic_code = "spassword=" & Qcomic_setting(2)
qcomic_code = qcomic_code & "&phid=" & FlashId
qcomic_code = qcomic_code & "&tid=" & rs("RootID")
qcomic_code = qcomic_code & "&pid=" & rs("AnnounceID")
qcomic_code = qcomic_code & "&fid=" & rs("BoardID")
qcomic_code = qcomic_code & "&uid=" & rs("postuserid")
qcomic_code = qcomic_code & "&mtime=" & Now()
qcomic_url = "http://comic.qihoo.com/dvbbs/update.php?sid=" & Qcomic_setting(1)
qcomic_url = qcomic_url & "&code=" & Server.UrlEncode(AuthCode(qcomic_code, "ENCODE", Qcomic_setting(3)))
qcomic_url = qcomic_url & "&title=" & Server.UrlEncode(qcomic_topic)
qcomic_url = qcomic_url & "&content=" & Server.UrlEncode(Left(Dvbbs.Replacehtml(Dvbbs.ReplaceUbb(Rs("Body"))),1000))
Set qcomic_http = Server.CreateObject("Microsoft.XMLHTTP")
qcomic_http.Open "GET",qcomic_url,false
qcomic_http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
qcomic_http.send()
If Err Then err.Clear
End If
If ihaveupfile=1 Then dvbbs.execute("update dv_upfile set F_AnnounceID='"&rootid&"|"&AnnounceID&"',F_Readme='"&Replace(Rs("Topic"),"'","''")&"',F_flag=0 where F_ID in ("&upfileinfo&")")
If FoundUseMagic Then
If iMagicFace <> Clng(iFoundUseMagic) Then
If cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text ) > tMagicMoney Then
Dvbbs.Execute("Update Dv_User Set UserMoney=UserMoney-"&tMagicMoney&" Where UserID="&Dvbbs.UserID)
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text =Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text -tMagicMoney
Dvbbs.ToolsLog -88,1,tMagicMoney,0,1,"使用金币购买魔法表情",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text & "|" & Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text
Else
Dvbbs.Execute("Update Dv_User Set UserTicket=UserTicket-"&tMagicTicket&" Where UserID="&Dvbbs.UserID)
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text-tMagicTicket
Dvbbs.ToolsLog -88,1,0,tMagicTicket,1,"使用点券购买魔法表情",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text & "|" & Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text
End If
End If
End If
End If
Rs.Close
Set Rs=Nothing
ShowErr("")
End Sub
'更新用户及系统道具数量(用户ID,道具ID,减少数量)
Private Sub UpdateUserTools(U_UserID,U_ToolsID,n)
Dim Sql,Rs
If Clng(n)<0 Then
n = "+" & n
Else
n = "-" & n
End If
Set Rs = Dvbbs.Plus_Execute("Select ID From [Dv_Plus_Tools_Buss] Where UserID="& U_UserID &" and ToolsID="& U_ToolsID)
If Rs.Eof And Rs.Bof Then
Dim Trs
Set Trs = Dvbbs.Plus_Execute("Select ToolsName From Dv_Plus_Tools_Info Where ID=" & U_ToolsID)
If Not (Trs.Eof And Trs.Bof) Then
Sql = "Insert Into [Dv_Plus_Tools_Buss] (UserID,UserName,ToolsID,ToolsName,ToolsCount) Values ("&U_UserID&",'"&Dv_Tools.ToUserInfo(1)&"',"&U_ToolsID&",'"&Trs(0)&"',"&Clng(Replace(Replace(n,"+",""),"-",""))&")"
Dvbbs.Plus_Execute(Sql)
End If
Trs.Close
Set Trs=Nothing
Else
Sql = "Update [Dv_Plus_Tools_Buss] Set ToolsCount = ToolsCount"&n&" Where UserID="& U_UserID &" and ToolsID="& U_ToolsID
Dvbbs.Plus_Execute(Sql)
End If
Rs.Close
Set Rs=Nothing
Sql = "Update [Dv_Plus_Tools_Info] Set UserStock = UserStock"&n&" Where ID="& U_ToolsID
Dvbbs.Plus_Execute(Sql)
End Sub
'回复获赠金币帖时更新
Public Sub GetMoney_SaveRe()
Dim ToUserID,ToUserName,UpPostBuyUser,UpGetMoney,Tempstr
SQL="Select PostUserID,GetMoney,PostBuyUser,Username From "&TotalUseTable&" Where RootID="&RootID&" and ParentID=0 and GetMoneyType=2"
Set Rs = Dvbbs.iCreateObject("ADODB.Recordset")
Rs.Open SQL,conn,1,3
If Not Rs.Eof Then
ToUserID = Clng(Rs(0))
UpGetMoney = Rs(1) + ToMoney
UpPostBuyUser = Rs(2)
ToUserName = Rs(3)
Tempstr = Split(UpPostBuyUser,"|||",2)
Tempstr(0) = UpGetMoney
Tempstr(1) = Tempstr(1) & "|||" & UserName &","& ToMoney
UpPostBuyUser = Tempstr(0) & "|||" & Tempstr(1)
UpPostBuyUser = Trim(UpPostBuyUser)
Rs(1) = UpGetMoney
Rs(2) = UpPostBuyUser
Rs.update
End If
Rs.Close : Set Rs=Nothing
'更新主题MONEY值
Sql = "Update [Dv_Topic] Set GetMoney="&UpGetMoney&" where TopicID="&RootID
Dvbbs.Execute(sql)
'主题作者获取金币
Sql = "Update [Dv_User] Set UserMoney=UserMoney + "&ToMoney&" where UserID="&ToUserID
Dvbbs.Execute(sql)
'插入道具日志
'Dim LogMsg
'LogMsg = "回复主题:《"&topic&"》 赠道给作者:"&ToUserName&""&ToMoney&"个金币成功,并插入道具日志记录。"
'Call Dvbbs.ToolsLog(0,0,ToMoney,0,0,LogMsg,Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text &"|"&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text)
End Sub
'更新版面数据和缓存
Public Sub UpDate_BoardInfoAndCache()
Dim UpdateBoardID,parentstr
parentstr =Application(Dvbbs.CacheName&"_boardlist").documentElement.selectSingleNode("board[@boardid='"&Dvbbs.BoardID&"']/@parentstr").text
If parentstr <> "0" Then
UpdateBoardID= parentstr & "," & Dvbbs.BoardID
Else
UpdateBoardID=Dvbbs.BoardID
End If
Dim updateboard,i
LastPost_1=replace(LastPost_1,"<","<")
If Action = 6 Then
SQL="update Dv_board set PostNum=PostNum+1,todaynum=todaynum+1,LastPost='"&LastPost_1&"' where boardid in ("&UpdateBoardID&")"
ElseIf Action = 5 Or Action = 7 Then
SQL="update Dv_board set PostNum=PostNum+1,TopicNum=TopicNum+1,todaynum=todaynum+1,LastPost='"&LastPost_1&"' where boardid in ("&UpdateBoardID&")"
ElseIf Action = 8 Then
LastPost_1=replace(LastPost,"<","<")
End If
Dvbbs.Execute(sql)
UpdateBoardID=Split(UpdateBoardID,",")
LastPost_1=Split(LastPost_1,"$")
For Each updateboard in UpdateBoardID
If IsObject(Application(Dvbbs.CacheName &"_information_" & updateboard)) Then
If Not Action = 8 Then
Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@postnum").text=CLng(Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@postnum").text)+1
Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@todaynum").text=CLng(Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@todaynum").text)+1
End If
If Action = 5 Or Action = 7 Then
Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@topicnum").text=CLng(Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@topicnum").text)+1
End If
For i=0 to UBound(LastPost_1)
Application(Dvbbs.CacheName &"_information_" & updateboard).documentElement.selectSingleNode("information/@lastpost_"& i &"").text=LastPost_1(i)
Next
End If
Next
End Sub
Public Sub UpDate_ForumInfoAndCache()
Dim updateinfo,LastPostTime
Dim Forum_LastPost,Forum_TodayNum,Forum_MaxPostNum
Forum_LastPost=Dvbbs.CacheData(15,0)
Forum_TodayNum=Dvbbs.CacheData(9,0)
Forum_MaxPostNum=Dvbbs.CacheData(12,0)
LastPostTimes=split(Forum_LastPost,"$")
LastPostTime=LastPostTimes(2)
If Not IsDate(LastPostTime) Then LastPostTime=Now()
If datediff("d",LastPostTime,Now())=0 Then
If CLng(Forum_TodayNum)+1 > CLng(Forum_MaxPostNum) Then
updateinfo=",Forum_MaxPostNum=Forum_TodayNum+1,Forum_MaxPostDate="&SqlNowString&""
Dvbbs.ReloadSetupCache Now(),13
Dvbbs.ReloadSetupCache CLng(Forum_TodayNum)+1,12
End If
Dvbbs.ReloadSetupCache CLng(Forum_TodayNum)+1,9
If Action = 6 Then
SQL="update Dv_setup set Forum_PostNum=Forum_PostNum+1,Forum_TodayNum=Forum_TodayNum+1,Forum_LastPost='"&LastPost&"' "&updateinfo&" "
Else
SQL="update Dv_setup set Forum_TopicNum=Forum_TopicNum+1,Forum_PostNum=Forum_PostNum+1,Forum_TodayNum=Forum_TodayNum+1,Forum_LastPost='"&LastPost&"' "&updateinfo&" "
End If
Else
If Action = 6 Then
SQL="update Dv_setup set Forum_PostNum=Forum_PostNum+1,forum_YesTerdayNum="&CLng(Forum_TodayNum)&",Forum_TodayNum=1,Forum_LastPost='"&LastPost&"' "
Else
SQL="update Dv_setup set Forum_TopicNum=Forum_TopicNum+1,Forum_PostNum=Forum_PostNum+1,forum_YesTerdayNum="&CLng(Forum_TodayNum)&",Forum_TodayNum=1,Forum_LastPost='"&LastPost&"' "
End If
Dvbbs.ReloadSetupCache 1,9
End If
'更新总固顶部分数据和缓存
If Not Action = 6 Then
If Myistop=2 Then
Dim tmpstr
If Dvbbs.CacheData(28,0)="" Then
tmpstr=", Forum_alltopnum='"&RootID&"'"
Dvbbs.ReloadSetupCache RootID,28
Else
tmpstr=", Forum_alltopnum='"&Dvbbs.CacheData(28,0)&","&RootID&"'"
Dvbbs.ReloadSetupCache Dvbbs.CacheData(28,0)&","&RootID,28
End If
SQL=SQl&tmpstr
End If
Dvbbs.ReloadSetupCache CLng(Dvbbs.CacheData(7,0))+1,7'主题数
End If
Dvbbs.ReloadSetupCache CLng(Dvbbs.CacheData(8,0))+1,8'文章数
Dvbbs.ReloadSetupCache LastPost,15
Dvbbs.Execute(SQL)
End Sub
Public Sub succeed()
response.Write("[reply]rootid="&RootID&";announceid="&AnnounceID&";totalusetable="&TotalUseTable&"[/reply]") 'zzcity add
' Dim Uid,bid
' Uid = Dvbbs.userid
' Bid = Dvbbs.boardid
' If PostStyle = "ajax" And Action =6 And Dvbbs.UserID>0 And ajaxPost Then
' 'Response.redirect "ajaxPostTpl.asp??boardid="&Dvbbs.boardid&"&Id="&RootID&"&AnnounceID="&AnnounceID&"&TotalUseTable="&TotalUseTable
' Call ajaxReturn()
' Exit Sub
' End If
' Dim TempStr,PostRetrunName,tourl,returnurl
' If IsAudit=1 And Action <> 8 Then Dvbbs.BoardID=LockTopic
' Dvbbs.Stats = Dvbbs.Stats & template.Strings(20)
' 'Call Dvbbs.BoardMasterPoint() '动网官方版主插件,斑竹评定
' TempStr = template.html(8)
' Select case Dvbbs.Board_Setting(17)
' case "1"
' tourl = "index.asp"
' PostRetrunName=template.Strings(13)
' case "2"
' tourl="index.asp?boardid="&Dvbbs.boardid
' PostRetrunName=template.Strings(14)
' case "3","4"
' If IsAudit=1 Then
' tourl="index.asp?boardid="&Dvbbs.boardid
' If IsAuditcheck=1 Then
' PostRetrunName="由于您发表的贴子含敏感内容,您的贴子需要管理员审核过才可以见到。"
' ElseIf IsAuditcheck=2 Then
' PostRetrunName="由于您尚未达到豁免审核的条件,您的贴子需要管理员审核过才可以见到。"
' Else
' PostRetrunName=template.Strings(19)
' End If
' Else
' Select Case Action
' Case 5
' tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' PostRetrunName=template.Strings(15)
' Case 6
' tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' PostRetrunName=template.Strings(16)
' Case 7
' tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' PostRetrunName=template.Strings(17)
' Case 8
' tourl="dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' PostRetrunName=template.Strings(18)
' End Select
' If Dvbbs.Board_Setting(17) = "4" And Not ajaxPost Then
' tourl = Dvbbs.ArchiveHtml(tourl)
' Dvbbs.Footer
' Response.redirect tourl
' Response.end
' End If
' End If
' End Select
' Dim UrlFlag
' If IsAudit=1 Then
' If Dvbbs.Board_Setting(17)>2 Then
' UrlFlag=2
' Else
' UrlFlag=Dvbbs.Board_Setting(17)
' End If
' Else
' UrlFlag=Dvbbs.Board_Setting(17)
' End If
' Select Case UrlFlag
' case 1 returnurl = "index.asp"
' case 2 returnurl = "index.asp?boardid="&Dvbbs.boardid
' case 3 returnurl = "dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' case 4 returnurl = "dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page="&page&"&star="&Star
' Case Else returnurl= "dispbbs.asp?boardid="&Dvbbs.boardid&"&id="&RootID&"&page=1&star="&Star
' End Select
' returnurl = Mid(Dvbbs.ArchiveHtml(" 0 Then Exit Sub
Dim MagicSql
If Action = 5 Or Action = 7 Then
' If FoundUseMagic Then
' If cCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text ) > tMagicMoney Then
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text =Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text -tMagicMoney
' Dvbbs.ToolsLog -88,1,tMagicMoney,0,1,"使用金币购买魔法表情",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text & "|" & Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text
' Else
' MagicSql = ",UserTicket=UserTicket-"&tMagicTicket&""
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text-tMagicTicket
' Dvbbs.ToolsLog -88,1,0,tMagicTicket,1,"使用点券购买魔法表情",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text & "|" & Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userticket").text
' End If
' End If
' Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,UserTopic=UserTopic+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(1))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(6))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(11))&",UserToday='"&Clng(Dvbbs.UserToday(0))+1&"|"&Clng(Dvbbs.UserToday(1))&"|"&Clng(Dvbbs.UserToday(2))&"|"&Clng(Dvbbs.UserToday(3))&"|"&Clng(Dvbbs.UserToday(4))&"',UserMoney="&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text &" "&MagicSql&" Where UserID="&Dvbbs.userID)
Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,UserTopic=UserTopic+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(1))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(6))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(11))&",UserToday='"&Clng(Dvbbs.UserToday(0))+1&"|"&Clng(Dvbbs.UserToday(1))&"|"&Clng(Dvbbs.UserToday(2))&"|"&Clng(Dvbbs.UserToday(3))&"|"&Clng(Dvbbs.UserToday(4))&"' "&MagicSql&" Where UserID="&Dvbbs.userID) 'zzcity add
' If Not Reuser Then
' UserPost=UserPost+1
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usertopic").text =CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usertopic").text)+1
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text+Clng(Dvbbs.Forum_user(1))
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text+Clng(Dvbbs.Forum_user(6))
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text =Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text +Clng(Dvbbs.Forum_user(11))
' End If
' ElseIf Action = 6 Then '回贴更新积分。
' If Not Reuser Then
' Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(2))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(7))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(12))&",UserToday='"&Clng(Dvbbs.UserToday(0))+1&"|"&Clng(Dvbbs.UserToday(1))&"|"&Clng(Dvbbs.UserToday(2))&"|"&Clng(Dvbbs.UserToday(3))&"|"&Clng(Dvbbs.UserToday(4))&"',UserMoney="&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text &" Where UserID="&Dvbbs.userID)
' UserPost=UserPost+1
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text+Clng(Dvbbs.Forum_user(2))
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userep").text+Clng(Dvbbs.Forum_user(7))
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text =Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usercp").text +Clng(Dvbbs.Forum_user(12))
' Else
' Dvbbs.Execute("update [Dv_user] set UserLastIP='"&Dvbbs.usertrueip&"',UserPost=UserPost+1,userWealth=userWealth+"&Clng(Dvbbs.Forum_user(2))&",userEP=userEP+"&Clng(Dvbbs.Forum_user(7))&",userCP=userCP+"&Clng(Dvbbs.Forum_user(12))&",UserMoney="&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermoney").text &" Where UserID="&Dvbbs.userID)
' End If
End If
' If Not Reuser Then
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text =CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text)+1
' Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usertoday").text=Clng(Dvbbs.UserToday(0))+1 & "|" & Clng(Dvbbs.UserToday(1)) & "|" & Clng(Dvbbs.UserToday(2))&"|"&Clng(Dvbbs.UserToday(3))&"|"&Clng(Dvbbs.UserToday(4))
' End If
'发贴数字能整除十则更新用户等级。(Updategrade())
If UserPost mod 10 < 1 Then Updategrade()
End Sub
'更新用户等级,所需外部变量,UserPost,GroupID,userid
Public Sub Updategrade()
Dim FoundGrade,TitlePic
REM 判断用户组(等级)资料,当用户级别为跟随文章数增长则自动更新用户组(等级)
REM 自动更新用户数据
REM 如果属于系统或特殊或多属性组
Set Rs=Dvbbs.Execute("Select MinArticle,IsSetting,ParentGID,UserTitle,GroupPic From Dv_UserGroups Where UserGroupID="&GroupID)
If Not (Rs.Eof And Rs.Bof) Then
If Rs(2)<>3 Then
'用户等级不按照文章升级,用户为系统或特殊或多属性组
UserClass=Rs(3)
TitlePic=Rs(4)
FoundGrade=True
End If
End If
If Not FoundGrade Then
'如果不属于系统或特殊或多属性组,则将该用户属于注册用户组且按照其文章数自动更新其用户组(等级)
Set Rs=Dvbbs.Execute("Select Top 1 usertitle,GroupPic,UserGroupID From Dv_UserGroups Where ParentGID=3 And Minarticle<="&UserPost&" Order By MinArticle Desc,UserGroupID")
If Not (Rs.Eof And Rs.Bof) Then
UserClass=Rs(0)
TitlePic=Rs(1)
GroupID=Rs(2)
FoundGrade=True
End If
End If
Set Rs=Nothing
If Not FoundGrade Then
' If ajaxpost Then
' Call showAjaxMsg(0,"系统没有找到您的注册用户组资料,请联系管理员进行修正。","","")
' Else
' Response.Redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=系统没有找到您的注册用户组资料,请联系管理员进行修正。&action=OtherErr"
' End If
showerr("系统没有找到您的注册用户组资料,请联系管理员进行修正。")
End If
Dvbbs.Execute("Update [Dv_User] Set UserClass='"&UserClass&"',TitlePic='"&TitlePic&"',UserGroupID="&GroupID&" Where UserID="&Dvbbs.UserID)
'If Not Reuser Then
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userclass").text = UserClass
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usergroupid").text = GroupID
'End If
End Sub
Function AccessPost()
Dim Dom,node,ischeckcontent
If Cint(Dvbbs.Board_Setting(3))=0 Then
AccessPost=0
Exit Function
End If
ischeckcontent=0
Set Dom=Application(Dvbbs.CacheName & "_accesstopic")
'检查审核是否有打开设置
Set Node=Dom.documentElement.selectSingleNode("setting[@use=1]")
If Node is Nothing Then
AccessPost=0
Exit Function
End If
'检查是否属于需要审核的用户组
Set Node=Dom.documentElement.selectSingleNode("setting[@use=1]/checkuser[@use=1 and @usergroupid="&dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usergroupid").text&"]")
Dim CheckUserGroup
If Node is Nothing Then
Set Node=Dom.documentElement.selectSingleNode("setting[@use=1]/checkuser[@use=1 and @usergroupid=4]")
If Not (Node Is Nothing) Then
Response.Charset = "GB2312"
Dim ParentGID
If Not TypeName(Application(Dvbbs.CacheName &"_groupsetting"))="DOMDocument" Then LoadGroupSetting()
ParentGID=Application(Dvbbs.CacheName &"_groupsetting").documentElement.selectSingleNode("usergroup[@usergroupid='"& Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usergroupid").text &"']/@parentgid").text
If Not ParentGID=3 Then AccessPost=0:Exit Function
CheckUserGroup=4
Else
AccessPost=0
Exit Function
End If
Else
CheckUserGroup=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usergroupid").text
End If
'用户被豁免审核判断
Set Node=Dom.documentElement.selectSingleNode("setting[@use=1]/nocheck/username[.='"&Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@username").text&"']")
If Not Node is Nothing Then
AccessPost=0
Exit Function
End If
Rem action=5 主题 actiom=6 回复 action=7 投票 action=8 编辑
Dim tmpstr,laction,regdate,delPercent
Select Case action
Case "5"
tmpstr="setting[@use=1]/check[@new=1]"
laction="new"
Case "6"
tmpstr="setting[@use=1]/check[@re=1]"
laction="re"
Case "7"
tmpstr="setting[@use=1]/check[@new=1]"
laction="new"
Case "8"
tmpstr="setting[@use=1]/check[@edit=1]"
laction="edit"
End Select
If Dom.documentElement.selectSingleNode(tmpstr) Is Nothing Then
AccessPost=0
Exit Function
End If
regdate=Datediff("d",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@joindate").text,Now())
If CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text) > 0 Or CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userdel").text) < 0 Then
delPercent=CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text)-CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userdel").text)
delPercent=(0-CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userdel").text))/delPercent
Else
delPercent=0
End If
delPercent=FormatPercent(delPercent)
For Each node in Dom.documentElement.selectNodes("setting[@use=1 and check/@"&laction&"=1]/checkuser[@use=1 and @usergroupid="&CheckUserGroup&"]")
'主题数判断
If Node.selectSingleNode("usertopic/@use").text="1" Then
If CCur(Node.selectSingleNode("usertopic/@value").text) > CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usertopic").text) Then
AccessPost=1
Exit For
End If
End If
'回贴数
If Node.selectSingleNode("userpost/@use").text="1" Then
If CCur(Node.selectSingleNode("userpost/@value").text) > CCur(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userpost").text) Then
AccessPost=1
Exit For
End If
End If
'注册天数的比较
If Node.selectSingleNode("regdate/@use").text="1" Then
If CCur(Node.selectSingleNode("regdate/@value").text) > regdate Then
AccessPost=1
Exit For
End If
End If
'删贴百分比比较
If Node.selectSingleNode("userdel/@use").text="1" Then
If FormatNumber(Node.selectSingleNode("userdel/@value").text) < FormatNumber(delPercent) Then
AccessPost=1
Exit For
End If
End If
'对被屏蔽用户是否审核的判断
If Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@lockuser").text="2" And Node.selectSingleNode("lockuser/@use").text="1" Then
AccessPost=1
Exit For
End If
If Node.selectSingleNode("checkcontent/@use").text="1" Then
Ischeckcontent=1
End If
Next
If AccessPost=1 Then
Exit Function
End If
If ischeckcontent=0 Then
AccessPost=0
Else
Set Node=Dom.documentElement.selectNodes("setting[@use=1]/checkcontent")
AccessPost=checkcontent(node)
End If
End Function
Function checkcontent(node1)
Dim re,s,node,tmpnode
checkcontent=0
s=unescape(Request("topic"))&unescape(Request("Body"))
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
For Each Node in node1
'含图片检查
If Node.selectSingleNode("checkpic/@use").text="1" Then
re.Pattern="(\[IMG\]|10 And Star=1 Then floor = 1
If floor Mod 2 = 0 Then
outputHtml = Replace(outputHtml,"{$divStyle}","postlary2")
Else
outputHtml = Replace(outputHtml,"{$divStyle}","postlary1")
End If
If Rs3("UserSex")=0 Then
sexPic="FeMale.gif"
Else
sexPic="Male.gif"
End If
If Dvbbs.forum_setting(6)=1 And Rs3("UserTitle")<>"" Then
outputHtml = Replace(outputHtml,"{$UserTitle}",Rs3("UserTitle"))
Else
outputHtml = Replace(outputHtml,"{$UserTitle}","")
End If
'If CLng(Rs3("UserPower")) > 0 Then
'outputHtml = Replace(outputHtml,"{$UserPower}","威望:"&Rs3("UserPower")&"
")
'Else
outputHtml = Replace(outputHtml,"{$UserPower}",Rs3("UserPower"))
'End If
outputHtml = Replace(outputHtml,"{$UserBest}",Rs3("UserIsBest"))
If CInt(Rs3("UserGroupID")) < 9 Then
getnameglow = nameglow(Rs3("UserGroupID")-1)
Else
getnameglow = Dvbbs.mainsetting(5)
End If
namestyle = Split(Application(Dvbbs.CacheName &"_groupsetting").documentElement.selectSingleNode("usergroup[@usergroupid='"& CInt(Rs3("UserGroupID")) &"']/@groupsetting").text,",")(58)
namestyle = Split(namestyle,"§")
If Dvbbs.Forum_setting(99) = 1 Then
outputHtml = Replace(outputHtml,"{$Boke}"," | 博客")
Else
outputHtml = Replace(outputHtml,"{$Boke}","")
End If
If Trim(UserIM(0))<>"" Then
outputHtml = Replace(outputHtml,"{$homepage}"," | 主页")
Else
outputHtml = Replace(outputHtml,"{$homepage}","")
End If
If Trim(UserIM(1))<>"" Then
outputHtml = Replace(outputHtml,"{$QQ}"," | QQ")
Else
outputHtml = Replace(outputHtml,"{$QQ}","")
End If
If Trim(Rs3("UserEmail"))<>"" Then
outputHtml = Replace(outputHtml,"{$UserEmail}"," | 邮箱")
Else
outputHtml = Replace(outputHtml,"{$UserEmail}","")
End If
Ubblists= Rs("Ubblist")
If InStr(Ubblists,",39,") > 0 Then
Body = dv_ubb.Dv_UbbCode(Dvbbs.ChkBadWords(Rs("Body")),Rs3("UserGroupID"),1,0)
Else
Body = dv_ubb.Dv_UbbCode(Dvbbs.ChkBadWords(Rs("Body")),Rs3("UserGroupID"),1,1)
End If
outputHtml = Replace(outputHtml,"{$boardID}",Dvbbs.boardid) '版面ID
outputHtml = Replace(outputHtml,"{$replyID}",Rs("AnnounceID")) '帖子编号
outputHtml = Replace(outputHtml,"{$topicId}",RootID) '主题编号
outputHtml = Replace(outputHtml,"{$Expression}",Rs("Expression")) '发帖心情
outputHtml = Replace(outputHtml,"{$topic}",Rs("Topic")) '标题
outputHtml = Replace(outputHtml,"{$floor}",Rs2(0)+1) '楼层
outputHtml = Replace(outputHtml,"{$Content}",Body) '内容
outputHtml = Replace(outputHtml,"{$postUserName}",Dvbbs.membername) '用户名
outputHtml = Replace(outputHtml,"{$postUserId}",Dvbbs.UserId) '用户ID
outputHtml = Replace(outputHtml,"{$sexPic}",sexPic) '性别图片
outputHtml = Replace(outputHtml,"{$UserFace}",Mid(Rs3("UserFace"),InStr(Rs3("UserFace"),"|")+1)) '头像
outputHtml = Replace(outputHtml,"{$UserFaceW}",Rs3("UserWidth")) '头像高度
outputHtml = Replace(outputHtml,"{$UserFaceH}",Rs3("UserHeight")) '头像宽度
outputHtml = Replace(outputHtml,"{$nameglow}",getnameglow) '用户名光晕颜色
outputHtml = Replace(outputHtml,"{$postUserGroup}",Rs3("UserClass")) '用户组名称
outputHtml = Replace(outputHtml,"{$TitlePic}",Rs3("TitlePic")) '等级图片
outputHtml = Replace(outputHtml,"{$postUserPost}",Rs3("UserPost")) '用户帖子数
outputHtml = Replace(outputHtml,"{$postUserScore}",Rs3("userEP")) '用户积分
'outputHtml = Replace(outputHtml,"{$postUserReg}",FormatDateTime(Rs3("JoinDate"),1)) '注册日期
outputHtml = Replace(outputHtml,"{$postUserReg}",Rs3("JoinDate"))
outputHtml = Replace(outputHtml,"{$postTime}",Rs("DateAndTime")) '回复时间
outputHtml = Replace(outputHtml,"{$namestyleA}",namestyle(0)) '用户名标记 1
outputHtml = Replace(outputHtml,"{$namestyleB}",namestyle(1)) '用户名标记 2
outputHtml = Replace(outputHtml,"{$star}",Star) '分页标记标记
Dvbbs.Stats = Dvbbs.Stats & "成功"
'Call Dvbbs.BoardMasterPoint() '动网官方版主插件,斑竹评定
Response.Clear
Response.Write outputHtml Rem &"----"& Dv_FilterJS(Rs3("UserFace"))
'Response.Cookies("Dvbbs")=GetFormID()
Rs.Close
Rs2.Close
Rs3.Close
Set Rs = Nothing
Set Rs2 = Nothing
Set Rs3 = Nothing
Set dv_ubb=Nothing
Response.End
End Sub
Function GetFormID()
Dim i,sessionid
sessionid = Session.SessionID
For i=1 to Len(sessionid)
GetFormID=GetFormID&Chr(Mid(sessionid,i,1)+97)
Next
End Function
Sub showAjaxMsg(t,msg1,msg2,str)
Response.Clear
Rem 返回值:提交状态 0失败 1成功,显示信息,一些参数 如版块ID | 帖子id | 第几页 | 跳转URL
Response.Write Dvbbs.Replacehtml("{Suc:"&t&",message:["""&msg1&""","""&msg2&"""],id:"""&str&"""};")
Response.End
End Sub
Rem Add 返回showerr错误信息
Function getErrCodeMsg()
Dim i,ErrCodes,ErrString
ErrCodes=Dvbbs.ErrCodes
If ErrCodes<>"" Then
ErrCodes=Split(ErrCodes,",")
For i=0 to UBound(ErrCodes)
If IsNumeric(ErrCodes(i)) Then
If i=0 Then
ErrString= Dvbbs.ReadTextFile(Template.Folder &"\"& Template.ChildFolder &"\showerr_Strings"&ErrCodes(i)&".htm")
Else
ErrString=ErrString&"
"&Dvbbs.ReadTextFile(Template.Folder &"\"& Template.ChildFolder &"\showerr_Strings"&ErrCodes(i)&".htm")
End If
End If
Next
End If
getErrCodeMsg = ErrString
End Function
End Class
'截取指定字符
Function cutStr(str,strlen)
'去掉所有HTML标记
'Dim re
'Set re=new RegExp
're.IgnoreCase =True
're.Global=True
're.Pattern="<([^<>]*?)>"
'Do while re.Test(str)
' str=re.Replace(str,"")
'Loop
'set re=Nothing
Str=Dvbbs.Replacehtml(Str)
Dim l,t,c,i
l=Len(str)
t=0
For i=1 to l
c=Abs(Asc(Mid(str,i,1)))
If c>255 Then
t=t+2
Else
t=t+1
End If
If t>=strlen Then
cutStr=left(str,i)&"..."
Exit For
Else
cutStr=str
End If
Next
cutStr=Replace(cutStr,chr(10),"")
cutStr=Replace(cutStr,chr(13),"")
End Function
'过滤不必要UBB,和HTML
Function reUBBCode(strContent)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
strContent=Replace(strContent," "," ")
re.Pattern="(\[QUOTE\])(.|\n)*(\[\/QUOTE\])"
strContent=re.Replace(strContent,"")
re.Pattern="(\[point=*([0-9]*)\])(.|\n)*(\[\/point\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[post=*([0-9]*)\])(.|\n)*(\[\/post\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[power=*([0-9]*)\])(.|\n)*(\[\/power\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usercp=*([0-9]*)\])(.|\n)*(\[\/usercp\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[money=*([0-9]*)\])(.|\n)*(\[\/money\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[replyview\])(.|\n)*(\[\/replyview\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usemoney=*([0-9]*)\])(.|\n)*(\[\/usemoney\])"
strContent=re.Replace(strContent," ")
strContent=Replace(strContent,"","")
Set re=Nothing
strContent=Replace(strContent,Chr(10),"")
strContent=Replace(strContent,Chr(13),"")
strContent=Replace(strContent, CHR(32), " ")
strContent=Replace(strContent, CHR(9), " ")
strContent=Dvbbs.Replacehtml(strContent)
reUBBCode=replace(strContent,"<","<")
End Function
'通用函数
Function IstrueName(uName)
IstrueName=False
If InStr(uName,"=")>0 Then Exit Function
If InStr(uName,"%")>0 Then Exit Function
If InStr(uName,Chr(32))>0 Then Exit Function
If InStr(uName,"?")>0 Then Exit Function
If InStr(uName,"&")>0 Then Exit Function
If InStr(uName,";")>0 Then Exit Function
If InStr(uName,",")>0 Then Exit Function
If InStr(uName,"'")>0 Then Exit Function
If InStr(uName,Chr(34))>0 Then Exit Function
If InStr(uName,chr(9))>0 Then Exit Function
If InStr(uName,"")>0 Then Exit Function
If InStr(uName,"$")>0 Then Exit Function
IstrueName=True
End Function
'发贴时用,为了减少入库量
'更新用户短信通知信息(新短信条数||新短讯ID||发信人名)
Sub UPDATE_User_Msg(username)
Dim msginfo,i,UP_UserInfo,newmsg
newmsg=newincept(username)
If newmsg>0 Then
msginfo=newincept(username) & "||" & inceptid(1,username) & "||" & inceptid(2,username)
Else
msginfo="0||0||null"
End If
Dvbbs.execute("UPDATE [Dv_User] Set UserMsg='"&Dvbbs.CheckStr(msginfo)&"' WHERE username='"&Dvbbs.CheckStr(username)&"'")
If username=Dvbbs.MemberName Then
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@usermsg").text=msginfo
Else
Call Dvbbs.NeedUpdateList(username,1)
End If
End Sub
'统计留言
Function newincept(iusername)
Dim Rs
Rs=Dvbbs.execute("SELECT Count(id) FROM Dv_Message WHERE flag=0 And issend=1 And DelR=0 And incept='"& Dvbbs.CheckStr(iusername) &"'")
newincept=Rs(0)
Set Rs=nothing
If isnull(newincept) Then newincept=0
End Function
Function inceptid(stype,iusername)
Dim Rs
Set Rs=Dvbbs.execute("SELECT top 1 id,sender FROM Dv_Message WHERE flag=0 And issend=1 And DelR=0 And incept='"& Dvbbs.CheckStr(iusername) &"'")
If not rs.eof Then
If stype=1 Then
inceptid=Rs(0)
Else
inceptid=Rs(1)
End If
Else
If stype=1 Then
inceptid=0
Else
inceptid="null"
End If
End If
Set Rs=nothing
End Function
%>