三方整合动易后台删除用户不能同步的临时解决方法

问题描述:整合成功后,在动易后台删除用户时另外两个系统不能同步。而其它所有操作都已正常。

临时方案:修改动网和oblog的接口解决。

动网的修改:

打开动网论坛根目录下的dv_dpo.asp文件,找到147行左右的

D_Users = Split(UserName,",")

修改为:

If Left(UserName,1) = "," Then UserName = Right(UserName,Len(UserName)-1)D_Users = Split(UserName,",")

Oblog的修改:

打开Oblog的/API/oblogresponse.asp文件,289-336行左右,找到下面两个函数,在每个函数体的第一行增加红色代码:

修改前
[codes=VB]Sub DelUser()
    Dim rs,i
    If UserName="" Then
        ErrMsg= ("用户名不能为空(不能大于14小于4)!")
        FoundErr=True
        Exit Sub
    End If
    If InStr(UserName,",")>0 Then
        UserName=Split(UserName,",")
        For i=0 To UBound(UserName)
            deloneuser(UserName(i))
        Next
    Else
        deloneuser(UserName)
    End If
End Sub
'同上
Sub Deloneuser(UserName)
    If UserName="" Then
        ErrMsg=("用户名不能为空!")
        FoundErr=True
        Exit Sub
    End If
    Dim rs,fso,f,uname,udir,userid
    Set rs=oblog.execute("select user_dir,UserName,user_folder,userid from oblog_user where UserName='" & UserName & "'")
    If Not rs.eof Then
        udir=rs(0)
        uname=rs(1)
        userid=rs(3)
        Set fso=server.createobject("scripting.filesystemobject")
        If fso.FolderExists(server.MapPath(blogdir & udir&"/"&rs("user_folder"))) then
            Set f = fso.GetFolder(server.MapPath(blogdir & udir&"/"&rs("user_folder")))
            f.delete True
        End If
        Set f=Nothing
        Set fso=Nothing
        oblog.execute("delete from oblog_log where userid="&userid)
        oblog.execute("delete from oblog_comment where userid="&userid)
        oblog.execute("delete from oblog_message where userid="&userid)
        oblog.execute("delete from oblog_subject where userid="&userid)
        oblog.execute("delete from oblog_user where userid=" & userid)
        oblog.execute("delete from oblog_upfile where userid=" & userid)
        oblog.execute("delete from oblog_friend where userid=" & userid)
        oblog.execute("update oblog_pm set dels=1 where sender='" &UserName&"'")
    End If
    Set rs=Nothing
End Sub[/codes]

 

修改后
[codes=VB]Sub DelUser()
    If Left(UserName,1) = "," Then UserName = Right(UserName,Len(UserName)-1)
    Dim rs,i
    If UserName="" Then
        ErrMsg= ("用户名不能为空(不能大于14小于4)!")
        FoundErr=True
        Exit Sub
    End If
    If InStr(UserName,",")>0 Then
        UserName=Split(UserName,",")
        For i=0 To UBound(UserName)
            deloneuser(UserName(i))
        Next
    Else
        deloneuser(UserName)
    End If
End Sub
'同上
Sub Deloneuser(UserName)
    If Left(UserName,1) = "," Then UserName = Right(UserName,Len(UserName)-1)
    If UserName="" Then
        ErrMsg=("用户名不能为空!")
        FoundErr=True
        Exit Sub
    End If
    Dim rs,fso,f,uname,udir,userid
    Set rs=oblog.execute("select user_dir,UserName,user_folder,userid from oblog_user where UserName='" & UserName & "'")
    If Not rs.eof Then
        udir=rs(0)
        uname=rs(1)
        userid=rs(3)
        Set fso=server.createobject("scripting.filesystemobject")
        If fso.FolderExists(server.MapPath(blogdir & udir&"/"&rs("user_folder"))) then
            Set f = fso.GetFolder(server.MapPath(blogdir & udir&"/"&rs("user_folder")))
            f.delete True
        End If
        Set f=Nothing
        Set fso=Nothing
        oblog.execute("delete from oblog_log where userid="&userid)
        oblog.execute("delete from oblog_comment where userid="&userid)
        oblog.execute("delete from oblog_message where userid="&userid)
        oblog.execute("delete from oblog_subject where userid="&userid)
        oblog.execute("delete from oblog_user where userid=" & userid)
        oblog.execute("delete from oblog_upfile where userid=" & userid)
        oblog.execute("delete from oblog_friend where userid=" & userid)
        oblog.execute("update oblog_pm set dels=1 where sender='" &UserName&"'")
    End If
    Set rs=Nothing
End Sub[/codes]

About 小李刀刀

网页重构/前端开发人员,目前就职于腾讯科技互联网用户体验设计中心(Tencent ISUX)。
This entry was posted in 所谓技术 and tagged . Bookmark the permalink.

12 Responses to "三方整合动易后台删除用户不能同步的临时解决方法"

Leave a reply