DvBBS同一贴子同一帐号连续回复不得超过三次

昨天下午老迷在动网官方论坛上发贴宣布ASP8.1版正式发布,点进去一看,只见前两页都是同一会员在做毫无意义的顶贴(今天已经删除)。想起以前在CSDN上有见限制同一贴子同一帐号连续回复不得超过三次,那我们来给DvBBS也加上这功能。打开savepost.asp,找到如下内容:

引用内容 引用内容
Rem ------------------------
Rem 保存部分函数开始
Rem ------------------------

在它上边加一个函数CheckPostTimes:

'连续回复不得超过三次
Private Function CheckPostTimes(AnnounceID)
    Dim arrID,i
    CheckpostTimes = 0
    Set Rs = Dvbbs.iCreateObject("ADODB.Recordset")
    SQL = "Select top 3 postuserid From " & TotalUseTable & " Where BoardID=" & Dvbbs.BoardID & " and ParentID=" & AnnounceID & " order by AnnounceID Desc"
    Rs.Open SQL,conn,1,1
    If Not Rs.Bof And Not Rs.Eof Then arrID = Rs.GetRows(-1)
    Rs.close
    Set Rs = Nothing
    If isArray(arrID) Then
        If UBound(arrID,2)=2 Then
            For i=0 to UBound(arrID,2)
                If arrID(0,i)=Dvbbs.UserID Then
                    CheckpostTimes = CheckpostTimes + 1
                End If
            Next
        End If
    End If
End Function

再在Save_CheckData()函数内插入如下红色部分代码:

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
    If CheckPostTimes(AnnounceID)=3 Then
        parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=<li>同一贴子同一帐号连续回复不得超过三次&action=OtherErr&autoreload=1"    
        Response.redirect parameter
    End If

ElseIf Action = 8 Then

上边针对的是DvBBS8.1的修改,DvBBS7.1的朋友只须将上边的代码稍做修改即可:

1. CheckPostTimes函数中Set Rs = Dvbbs.iCreateObject("ADODB.Recordset")改为:Set Rs = Server.CreateObject("ADODB.Recordset")
2.第二处修改中parameter="showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=<li>同一贴子同一帐号连续回复不得超过三次&action=OtherErr&autoreload=1"修改为:parameter="showerr.asp?ErrCodes=<li>同一贴子同一帐号连续回复不得超过三次&action=OtherErr&autoreload=1"

评论: 0 | 引用: 0 | 查看次数: 4366
发表评论
登录后再发表评论!