Se um site pessoal tiver um módulo de registro de membro + Dongwang Forum, não será fácil integrar o site ao sistema Dongwang Forum para obter atualização sincronizada de informações do usuário, login e outras operações entre diferentes sistemas da Web, embora Dongwang tenha fornecido. um guia detalhado para desenvolvedores da interface API do sistema Dongwang Forum, mas um novato como eu não consegue entender por um tempo, desculpe. Não querendo ceder, depois de algumas pesquisas e testes em seu login, verificação e outras funções, finalmente consegui algum sucesso. Os novatos também possuem métodos de novato:
A versão do fórum para este teste é a versão 7.1.0 Sp1 e outras versões não foram testadas.
1. Estrutura de arquivos do site
wwwroot
┝index.asp
┝ CheckUserLogin.asp
┕bbs/
2. Princípio de Integração
Não é difícil implementar atualizações síncronas. O principal problema da integração é o login síncrono, portanto, nosso foco será discutir como conseguir o login síncrono. Meu método é integrar a tabela de usuários do site principal na tabela de usuários Dongwang Dv_User (para evitar o problema de atualizar duas bibliotecas no futuro, você pode adicionar campos a Dv_User conforme necessário e modificar bbs/login.asp e bbs/inc). Faça as modificações apropriadas em /Dv_ClsMain.asp ao fazer login, envie o formulário para bbs/login.asp para verificação; o site principal determina se o login foi bem-sucedido com base nas informações registradas na Sessão após o login bem-sucedido em Dongwang e obtém informações do usuário.
3. Adicione novos arquivos modificados
Código 1.index.asp:
<html>
<cabeça>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Integração de site pessoal e rede dinâmica (www.mzwu.com)</title>
</head>
<corpo>
<!--#include arquivo=CheckUserLogin.asp -->
<%
Se CheckUserLogin então
Response.write(<a href=bbs/logout.asp?back=1>Sair</a><p></p>)
Response.write(nome de usuário: & Request.Cookies(nome de usuário) & <br>)
Response.write(Gênero: & Request.Cookies(sexo) & <br>)
Response.write(Tempo de registro: & Request.Cookies(joindate) & <br>)
Response.write(último login: & Request.Cookies(último login) & <br>)
Response.write(número de logins: & Request.Cookies(userlogins) & <br>)
Response.write(tipo de navegador: & Request.Cookies(navegador) & <br>)
Response.write(versão do navegador: & Request.Cookies(versão) & <br>)
Response.write(sistema operacional: & Request.Cookies(plataforma) & <br>)
Outro
%>
<form id=form1 nome=form1 método=post action=bbs/login.asp?action=chk&back=1>
nome de usuário:
<nome de entrada=nome de usuário tipo=texto id=nome de usuário tamanho=10 />
<br />
senha:
<nome de entrada=tipo de senha=id da senha=tamanho da senha=10 />
<tipo de entrada=nome de envio=Valor de envio=Login/>
</form>
<%
Terminar se
%>
<p></p><a href=bbs/>Entre no fórum</a>
</body>
</html>
2. Código CheckUserLogin.asp:
<!--#Incluir arquivo=bbs/inc/Dv_ClsMain.asp-->
<%
Função CheckUserLogin()
Dim Dvbbs,UserSession
Const MsxmlVersion=.3.0
Definir Dvbbs = Novo Cls_Forum
Definir UserSession=Server.CreateObject(msxml2.FreeThreadedDOMDocument& MsxmlVersion)
Se UserSession.loadxml(Session(Dvbbs.CacheName & UserID)&) Então
Se UserSession.documentElement.selectSingleNode(userinfo/@userid).text<>0 Então
'Logado com sucesso no fórum
CheckUserLogin = Verdadeiro
'A seguir está como obter algumas informações do usuário. Você pode salvá-las em Cookies ou Sessão para facilitar o uso:
'ID do usuário: UserSession.documentElement.selectSingleNode(userinfo/@userid).text
'Nome de usuário: UserSession.documentElement.selectSingleNode(userinfo/@username).text
'Aniversário: UserSession.documentElement.selectSingleNode(userinfo/@userbirthday).text
'E-mail: UserSession.documentElement.selectSingleNode(userinfo/@useremail).text
'Gênero: UserSession.documentElement.selectSingleNode(userinfo/@usersex).text '0 é feminino, 1 é masculino
'Tempo de registro: UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
'Último login: UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
'Número de logins: UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
'Dinheiro: UserSession.documentElement.selectSingleNode(userinfo/@userwealth).text
'Pontos: UserSession.documentElement.selectSingleNode(userinfo/@userep).text
'Charme: UserSession.documentElement.selectSingleNode(userinfo/@usercp).text
'IP do último login: UserSession.documentElement.selectSingleNode(userinfo/@userlastip).text
'Tipo de navegador: UserSession.documentElement.selectSingleNode(agent/@browser).text
'Versão do navegador: UserSession.documentElement.selectSingleNode(agent/@version).text
'Sistema operacional: UserSession.documentElement.selectSingleNode(agent/@platform).text
'IP de visita: UserSession.documentElement.selectSingleNode(agent/@ip).text
'Exemplo de aplicação:
Response.Cookies(nomedeusuário) = UserSession.documentElement.selectSingleNode(userinfo/@nomedeusuário).text
Response.Cookies(joindate) = UserSession.documentElement.selectSingleNode(userinfo/@joindate).text
Se UserSession.documentElement.selectSingleNode(userinfo/@usersex).text=0 Então
Response.Cookies(sexo) = garota bonita
Outro
Response.Cookies(sexo) = irmão legal
Terminar se
Response.Cookies(lastlogin) = UserSession.documentElement.selectSingleNode(userinfo/@lastlogin).text
Response.Cookies(userlogins) = UserSession.documentElement.selectSingleNode(userinfo/@userlogins).text
Response.Cookies(navegador) = UserSession.documentElement.selectSingleNode(agent/@browser).text
Response.Cookies(versão) = UserSession.documentElement.selectSingleNode(agent/@version).text
Response.Cookies(plataforma) = UserSession.documentElement.selectSingleNode(agent/@platform).text
Outro
'Visitei o fórum, mas não fiz login, então é um status de convidado
CheckUserLogin = Falso
Terminar se
Outro
'Não visitei o fórum
CheckUserLogin = Falso
Terminar se
Definir UserSession = nada
Definir Dvbbs = nada
Função final
%>
3. Uma nova parte vermelha é adicionada ao bbs/login.asp para que você ainda possa retornar à página inicial após fazer login com sucesso na página inicial do site:
Dim nome do nome
Se instr(lcase(request(comeurl)),reg.asp)>0 ou instr(lcase(request(comeurl)),login.asp)>0 ou trim(request(comeurl))= Então
comourlname=
comeurl=index.asp
Outro
comeurl=solicitação(comeurl)
comeurlname=<li><a href=&request(comeurl)&>&request(comeurl)&</a></li>
Terminar se
Se solicitação(voltar)=1 Então
Resposta.Redirect(../index.asp)
Terminar se
Diminuir TempStr
TempStr = template.html(2)
'Se Dvbbs.Forum_ChanSetting(0)=1 E Dvbbs.Forum_ChanSetting(10)=1 E Dvbbs.Forum_ChanSetting(12)=1 Então
' TempStr = Substituir(TempStr,{$ray_logininfo},template.html(3))
'Outro
' TempStr = Substituir(TempStr,{$ray_logininfo},)
'Fim se
'------------------------------------------------ - ---------------
'Integração do sistema
'------------------------------------------------ - ---------------
Se DvApi_Enable então
Response.Write DvApi_SaveCookie
Resposta.Flush
Terminar se
'------------------------------------------------ - ---------------
TempStr = Substituir(TempStr,{$ray_logininfo},)
TempStr = Substituir(TempStr,{$comeurl},comeurl)
TempStr = Substituir(TempStr,{$comeurlinfo},comeurlname)
TempStr = Substituir(TempStr,{$forumname},Dvbbs.Forum_Info(0))
Resposta.Write TempStr
TempStr=
Função final
4. Uma nova parte vermelha foi adicionada ao bbs/logout.asp para que você ainda possa retornar à página inicial após sair da página inicial do site:
'------------------------------------------------ - ---------------
'Integração do sistema
'------------------------------------------------ - ---------------
Dim DvApi_Obj,DvApi_SaveCookie,SysKey
Se DvApi_Enable então
Md5OLD = 1
SysKey = Md5(Dvbbs.MemberName&DvApi_SysKey,16)
Md5OLD = 0
Definir DvApi_Obj = Novo DvApi
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,Dvbbs.MemberName,,)
Definir DvApi_Obj = Nada
Response.Write DvApi_SaveCookie
Resposta.Flush
Terminar se
Se solicitação(voltar)=1 Então
Resposta.Redirect(../index.asp)
Terminar se
'------------------------------------------------ - ---------------
'Resposta.Redirect Dvbbs.Forum_Info(11)
resposta.write<linguagem de script=JavaScript>
resposta.writesetTimeout(window.location='&Dvbbs.Forum_Info(11)&',1000);
resposta.write</script>
4. Configurações Dongwang: Remova o código de verificação de login, OK, a integração está completa.
5. Extensão:
Os campos na tabela Dv_User padrão às vezes não atendem às nossas necessidades reais. Precisamos adicionar novos campos para expandi-los.
1. Abra a tabela Dv_User e adicione um campo de tipo de texto info_1
2. Na função ChkUserLogin de bbs/login.asp
Sql=Selecione UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin,lastlogin como cometime, LastLogin como tempo ativo,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como tabuleiro
Modifique para:
Sql=Selecione UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin,lastlogin como cometime, LastLogin como tempo ativo,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como boardid,info_1
3. Na função TrueCheckUserLogin de bbs/inc/Dv_ClsMain.asp
Sql=Selecione UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin como cometime,LastLogin,LastLogin como tempo ativo,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Usar rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como tabuleiro
Modifique para:
Sql=Selecione UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin como cometime,LastLogin,LastLogin como tempo ativo,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,Use rHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid como boardid,info_1
4.CheckUserLogin.asp
Response.Cookies(plataforma) = UserSession.documentElement.selectSingleNode(agent/@platform).text
adicionado depois
Response.Cookies(info_1) = UserSession.documentElement.selectSingleNode(userinfo/@info_1).text
5.índice.asp
Response.write(sistema operacional: & Request.Cookies(plataforma) & <br>)
adicionado depois
Response.write(novo: & Request.Cookies(info_1) & <br>)
6.OK, concluído com sucesso